gpt4 book ai didi

elasticsearch - Elasticsearch :hour_minute_second映射返回空数据

转载 作者:行者123 更新时间:2023-12-02 22:54:09 24 4
gpt4 key购买 nike

在我为搜索字段创建的映射下面

PUT /sample/_mapping
{
"properties": {
"webDateTime1": {
"type": "date",
"format": "dd-MM-yyyy HH:mm:ss||dd-MM-yyyy||hour_minute_second"
}
}
}

如果我根据“04-04-2019 20:17:18”搜索得到正确的数据
如果我根据“04-04-2019”进行搜索以获取正确的数据
如果我基于“20:17:18”进行搜索,则不知道总是得到空结果。
任何帮助,将不胜感激。

最佳答案

摄取一些样本文档时:

POST sample/_doc/1
{"webDateTime1":"04-04-2019 20:17:18"}

POST sample/_doc/2
{"webDateTime1":"04-04-2019"}

POST sample/_doc/3
{"webDateTime1":"20:17:18"}

然后在日期字段上进行汇总,
GET sample/_search
{
"size": 0,
"aggs": {
"dt_values": {
"terms": {
"field": "webDateTime1"
}
}
}
}

您将看到如何对值进行实际索引:
...
"buckets" : [
{
"key" : 73038000,
"key_as_string" : "01-01-1970 20:17:18",
"doc_count" : 1
},
{
"key" : 1554336000000,
"key_as_string" : "04-04-2019 00:00:00",
"doc_count" : 1
},
{
"key" : 1554409038000,
"key_as_string" : "04-04-2019 20:17:18",
"doc_count" : 1
}
]
...

这就是您查询 20:17:18的原因,使您头疼。

现在,您通常希望像这样使用 range查询:
GET sample/_search
{
"query": {
"range": {
"webDateTime1": {
"gte": "20:17:18",
"lte": "20:17:18",
"format": "HH:mm:ss"
}
}
}
}

注意 format参数。但是同样,如果您没有在 date字段中提供 datetime,那么事实证明它将以unix纪元作为日期。

关于elasticsearch - Elasticsearch :hour_minute_second映射返回空数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61012547/

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