ElasticSearch-在一系列日期之间进行搜索以进行比较
我不熟悉ElasticSearch(使用7.6版),并试图找出如何在两个时间段之间进行搜索。我尝试的一个查询是查询2019年第12周和2020年第12周。目的是比较结果。在阅读文档和搜索样本时,我已经接近了我要寻找的东西 简单的方法是用两个不同的日期发出两个查询。但我想限制查询的数量。我在阅读文档的基础上编写的最新查询是使用聚合,但我不确定这是否正确:ElasticSearch-在一系列日期之间进行搜索以进行比较,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我不熟悉ElasticSearch(使用7.6版),并试图找出如何在两个时间段之间进行搜索。我尝试的一个查询是查询2019年第12周和2020年第12周。目的是比较结果。在阅读文档和搜索样本时,我已经接近了我要寻找的东西 简单的方法是用两个不同的日期发出两个查询。但我想限制查询的数量。我在阅读文档的基础上编写的最新查询是使用聚合,但我不确定这是否正确: GET sample-data_*/_search/ { "query": { "bool": { "must": [
GET sample-data_*/_search/
{
"query": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"gte": "2020-03-20 08:00:00",
"lte": "2020-03-27 08:00:00"
}
}
}
]
}
},
"aggs": {
"range": {
"date_range": {
"field": "date",
"format": "8yyyy-MM-dd",
"ranges": [
{
"from": "2019-03-20",
"to": "2019-03-27",
"key": "last_years_week"
},
{
"from": "2020-03-20",
"to": "2020-03-27",
"key": "this_years_week"
}
],
"keyed": true
}
}
}
}
结果随后是聚合,但它们不包含我要查找的数据。返回其中一个结果:
{
"_index" : "sample-data_2020_03_26",
"_type" : "_doc",
"_id" : "JyhcfWFFz0s1vwizjgxh",
"_score" : 1.0,
"_source" : {
"@timestamp" : "2020-03-26 00:00:00",
"name" : "TEST0001",
"count" : "150",
"total" : 3000
}
}
...
"aggregations" : {
"range" : {
"buckets" : {
"last_years_week" : {
"from" : 1.55304E12,
"from_as_string" : "2019-03-20",
"to" : 1.5536448E12,
"to_as_string" : "2019-03-27",
"doc_count" : 0
},
"this_years_week" : {
"from" : 1.5846624E12,
"from_as_string" : "2020-03-20",
"to" : 1.5852672E12,
"to_as_string" : "2020-03-27",
"doc_count" : 0
}
}
}
}
我的问题是:使用ElasticSearch在不同年份的两个日期之间查询数据的有效方法是什么,以便它们可以用来比较数字
如果您能为我指出正确的方向,我很乐意阅读更多关于复杂的ElasticSearch查询的内容
谢谢大家! 不发布带有Elasticsearch查询的工作解决方案,但如问题评论中所述,以答案的形式总结,其中包含一些有用的链接 对于在日期范围之间快速搜索非常有用,还支持各种 也将是有用和有用的
此聚合与正常范围聚合的主要区别在于,如果您希望在日期范围上进行聚合,则可以使用日期数学表达式来表示from和to值,并且它支持如下所述的数据数学格式:日期范围查询是您所需的,如果您可以提供示例文档和搜索查询之外的预期文档,我可以继续提供并解释QueryTank you@OpsterElasticsearchNinja以获得您的回复。我将研究这个特定的文档,尝试一些示例,并在明天对结果进行评论。当然,当您看到info@OpsterElasticsearchNinja不幸的是,我还没有找到解决办法。我觉得有点太复杂了。同时,我使用了一种不同的方法,但我绝对不会停止阅读范围查询和派生聚合,它非常有趣。谢谢你的回复,它确实为我指明了正确的方向。很高兴听到你学到了一些东西并朝着正确的方向前进。我感谢你的帮助并接受了你的回答。这是我的问题!