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

birthdate: { type: :date, format: :dateOptionalTime }
  • 我需要找到5月份(包括所有年份)出生的所有人。
  • 另一个查询是查找所有出生于“8月25日”(包括所有年份)的人

  • 这将是什么查询?

    最佳答案

    您可以使用 script filter实现

    每年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"
            }
          }
        }
      }
    }
    

    关于elasticsearch - Elasticsearch日期查询。在某个月出生的人,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32640437/

    10-11 09:08