我需要在一定的时间范围内进行查询,
首先,我想做一个
{
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "13000020"
}
},
{
"range": {
"timestampstring": {
"lte": "2020-10-05 15:22:58.537"
}
}
}
]
}
}
}
结果是
{
"took": 15,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 12,
"relation": "eq"
},
"max_score": 2.0,
"hits": [
{
"_index": "test",
"_type": "test12",
"_id": "WvNJl3UBy18_Kc9Pl1tu",
"_score": 2.0,
"_source": {
"hdrId": 13000020,
"timestampstring": "2020-11-05 15:22:58.537",
"DevieId": "624232489",
"type": "data"
}
},
{
"_index": "test",
"_type": "test12",
"_id": "jvOSmHUBy18_Kc9PK3qp",
"_score": 2.0,
"_source": {
"hdrId": 13000020,
"timestamp": 1604582511655,
"timestampstring": "2020-11-05 21:21:51.655",
"type": "data"
}
}
]
}
}
有人能指出我做错了什么吗?
第二,我没有做这个例子https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-daterange-aggregation.html
上面的例子如何适合我的应用,谢谢
杰夫
在这个时刻,我试图在 Postman ,这里是设置
得到http://myip:9200/test/dev/\u搜索,是否需要在此处进行索引?
{
"mappings": {
"properties": {
"timestampstring": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss.SSS"
}
}
}
}
它来了
{
"error": {
"root_cause": [
{
"type": "parsing_exception",
"reason": "Unknown key for a START_OBJECT in [mappings].",
"line": 2,
"col": 15
}
],
"type": "parsing_exception",
"reason": "Unknown key for a START_OBJECT in [mappings].",
"line": 2,
"col": 15
},
"status": 400
}
1条答案
按热度按时间waxmsbnn1#
您可能没有为设置索引Map
timestampstring
. 有关日期格式的更多信息,请参阅添加索引数据、Map、搜索查询和搜索结果的工作示例
索引Map:
索引数据:
搜索查询:
现在运行相同的搜索查询,您将得到所需的结果
搜索结果:
可以按以下方式应用日期范围聚合:
上面的查询将创建两个范围bucket,第一个将“bucket”所有日期在1个月之前的文档,第二个将“bucket”所有日期在1个月之前的文档。由于索引数据中没有日期早于1个月的文档,因此
doc_count
第一个铲斗的值为0,第二个铲斗的值为2搜索结果: