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

Ant*_*ton 3 elasticsearch elasticsearch-mapping elasticsearch-dsl elasticsearch-query

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

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

对此的查询是什么?

Val*_*Val 5

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

任何年份五月出生的人:

{
  "query": {
    "filtered": {
      "filter": {
        "script": {
          "script": "doc.birthdate.date.monthOfYear == 5"
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

所有8月25日出生的人(任何年份)

{
  "query": {
    "filtered": {
      "filter": {
        "script": {
          "script": "doc.birthdate.date.monthOfYear == 8 && doc.birthdate.date.dayOfMonth == 25"
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)