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

标签 elasticsearch elasticsearch-mapping elasticsearch-dsl elasticsearch-query

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

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/

    相关文章:

    elasticsearch - 原因以及如何调试 Elasticsearch CircuitBreakingException

    elasticsearch - elasticsearch和liferay dxp搜索

    java - Elasticsearch Java API : Object mapping for [eventDefinitions] tried to parse field [null] as object, 但找到了具体值?

    Elasticsearch 映射 - 同一字段中的不同数据类型

    elasticsearch - 汇总Elasticsearch中的最后文档

    elasticsearch - Elasticsearch重新索引API-无法重新索引大量文档

    plugins - 如何查看我正在使用哪个版本的Elasticsearch插件

    elasticsearch - Elasticsearch:无法从关键字字段获取结果

    python - 如何使用 elasticsearch-dsl 在嵌套查询周围添加 OR 过滤器

    django - Elasticsearch文档字段类型索引自动更改