将 Elasticsearch 日期范围查询与空值结合起来

2024-02-02

我想使用日期范围查询,如下所示:

{
    "range" : {
        "deadline" : {
            "gte" : "2016-12-14",
        }
    }
}

我的索引也包含截止日期的空值。我想在搜索结果中获取那些空日期文档以及范围内的日期。如何将日期范围与弹性 5.x 中的“must_not”存在查询结合起来


我认为一个布尔查询就可以了。

{
  "query": {
    "bool": {
      "should": [
        {
          "range": {
            "deadline": {
              "gte": "2016-12-14"
            }
          }
        },
        {
          "bool": {
            "must_not": {
              "exists": {
                "field": "deadline"
              }
            }
          }
        }
      ]
    }
  }
}

在 Elasticsearch 索引中null值不存在,所以我们使用存在查询。使用缺失的查询会更简洁,但它是自 2.2 起已弃用 https://www.elastic.co/guide/en/elasticsearch/reference/2.3/query-dsl-missing-query.html.

我没有足够的信息,所以我的示例运行在查询上下文,但也许过滤上下文在这种情况下会更方便。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Elasticsearch 日期范围查询与空值结合起来 的相关文章

随机推荐