gpt4 book ai didi

elasticsearch - ELASTICSEARCH-自动包含日期,而没有预定义的日期字段

转载 作者:行者123 更新时间:2023-12-03 01:13:43 24 4
gpt4 key购买 nike

可以在接收Elasticsearch的文档中包括“日期和时间”字段,而无需事先定义。
日期和时间对应于json到elasticsearch接收的日期和时间
这是映射:

{
"mappings": {
"properties": {
"entries":{"type": "nested"
}
}
}
}
是否可以在映射字段中定义它,以便elasticsearch自动包含当前日期?

最佳答案

您可以做的是定义一个ingest pipeline,以便在为文档建立索引时自动添加日期字段。
首先,创建一个像这样的管道(_ingest.timestamp是您可以访问的built-in field):

PUT _ingest/pipeline/add-current-time
{
"description" : "automatically add the current time to the documents",
"processors" : [
{
"set" : {
"field": "@timestamp",
"value": "_ingest.timestamp"
}
}
]
}
然后,在为新文档建立索引时,需要引用管道,如下所示:
PUT test-index/_doc/1?pipeline=add-current-time
{
"my_field": "test"
}
编制索引后,文档将如下所示:
GET test-index/_doc/1
=>

{
"@timestamp": "2020-08-12T15:48:00.000Z",
"my_field": "test"
}
更新:
由于您正在使用索引模板,因此更加容易,因为您可以定义要为每个索引文档运行的 default pipeline
在索引模板中,您需要将其添加到索引设置中:
{
"order": 1,
"index_patterns": [
"attom"
],
"aliases": {},
"settings": {
"index": {
"number_of_shards": "5",
"number_of_replicas": "1",
"default_pipeline": "add-current-time" <--- add this
}
},
...
然后,您可以保留索引文档而无需引用管道,这将是自动的。

关于elasticsearch - ELASTICSEARCH-自动包含日期,而没有预定义的日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63380033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com