我希望存储在我的ES索引中的每个文档默认都有一个创建时间,例如datetime.now(不是由发送PUT请求的客户端设置的,而是由ES本身设置的)。有没有办法做到这一点?还是在PUT请求中为我的文档建立索引期间必须传递值?
最佳答案
您可以创建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...
}
为此,您必须至少有一个摄取节点。
关于elasticsearch - ElasticSearch 6.7文档创建时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57153377/