一尘不染

Elasticsearch日期查询。在某个月出生的人

elasticsearch

我有一个具有以下映射的字段:

birthdate: { type: :date, format: :dateOptionalTime }
  1. 我需要找到每个在五月(包括所有年份)出生的人
  2. 另一个查询是查找所有在“ 8月25日”出生的人(包括所有年份)

这将是什么查询?


阅读 673

收藏
2020-06-22

共1个答案

一尘不染

您可以使用过滤器来实现script

每年5月出生的所有人:

{
  "query": {
    "filtered": {
      "filter": {
        "script": {
          "script": "doc.birthdate.date.monthOfYear == 5"
        }
      }
    }
  }
}

所有8月25日出生的人(每年)

{
  "query": {
    "filtered": {
      "filter": {
        "script": {
          "script": "doc.birthdate.date.monthOfYear == 8 && doc.birthdate.date.dayOfMonth == 25"
        }
      }
    }
  }
}
2020-06-22