【发布时间】:2019-11-30 20:43:51
【问题描述】:
我希望存储到我的 ES 索引中的每个文档在默认情况下都有一个创建时间,例如 datetime.now(不是由发送 PUT 请求的客户端设置,而是由 ES 本身设置)。有没有办法做到这一点?或者我是否必须在 PUT 请求中为我的文档编制索引时传递该值?
【问题讨论】:
标签: elasticsearch indexing kibana
我希望存储到我的 ES 索引中的每个文档在默认情况下都有一个创建时间,例如 datetime.now(不是由发送 PUT 请求的客户端设置,而是由 ES 本身设置)。有没有办法做到这一点?或者我是否必须在 PUT 请求中为我的文档编制索引时传递该值?
【问题讨论】:
标签: elasticsearch indexing kibana
您可以创建ingest pipeline 和script processor。
以下示例创建管道set_creation_date,在created_at 字段中添加文档创建日期。
PUT _ingest/pipeline/set_creation_date
{
"description": "Set creation date",
"processors": [
{
"script": {
"source": "ctx.created_at = new Date();"
}
}
]
}
当您索引文档时在pipeline 查询参数中添加管道名称。
POST /my_index/_doc?pipeline=set_creation_date
{
// Your doc...
}
为此,您必须至少有一个摄取节点。
【讨论】: