在ElasticSearch中获取一周中某天的记录

时间:2018-06-21 10:34:14

标签: elasticsearch

我有一个ES群集,其中包含一些汇总的数值数据,因此每天恰好有1条记录。我想编写一个查询,该查询将返回一周中特定日期的文档。例如,星期二的所有记录。目前,我正在通过获取所需日期范围内的所有记录,然后过滤掉所需日期的记录来进行此操作。有没有办法通过查询做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用以下脚本来做到这一点:

POST my_index/_search
{
  "query": {
    "script": {
      "script": {
        "source": "doc.my_date.value.dayOfWeek == 2"
      }
    }
  }
}

如果要经常运行此查询,最好在文档中创建另一个字段dayOfWeek,该字段包含星期几,然后可以使用术语查询方便地查询。它将比脚本更有效。