ElasticSearch-在一系列日期之间进行搜索以进行比较

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": [

我不熟悉ElasticSearch(使用7.6版),并试图找出如何在两个时间段之间进行搜索。我尝试的一个查询是查询2019年第12周和2020年第12周。目的是比较结果。在阅读文档和搜索样本时,我已经接近了我要寻找的东西

简单的方法是用两个不同的日期发出两个查询。但我想限制查询的数量。我在阅读文档的基础上编写的最新查询是使用聚合,但我不确定这是否正确:

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不幸的是,我还没有找到解决办法。我觉得有点太复杂了。同时,我使用了一种不同的方法,但我绝对不会停止阅读范围查询和派生聚合,它非常有趣。谢谢你的回复,它确实为我指明了正确的方向。很高兴听到你学到了一些东西并朝着正确的方向前进。我感谢你的帮助并接受了你的回答。这是我的问题!