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

标签 elasticsearch

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

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

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

最佳答案

我认为 bool 查询 可以解决问题。

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

在 Elasticsearch 索引中,null 值不存在,因此我们使用 exist 查询。使用缺少的查询会不那么冗长,但它是 deprecated since 2.2 .

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

关于elasticsearch - 将 elasticsearch 日期范围查询与空值结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41139525/

相关文章:

elasticsearch - 更新符合特定条件的ElasticSearch文档

elasticsearch - Elasticsearch数字字段的部分匹配

python - 像这样的Elasticsearch更像:相同的请求不同的响应

elasticsearch - 日志文件不会出现在elasticsearch中

mongodb - Elasticsearch 作为 DB 或 Elasticsearch over MongoDB

python - elasticsearch映射字段[name]上的属性[fields]的预期映射,但是得到了一个类java.lang.String

elasticsearch - 如何在Elasticsearch中更新索引/索引?

elasticsearch - 如何使用Jest Client在Elastic Search 2.4中获取超过10000个文档

c# - C#NEST ElasticSearch Default_Search分析器

Elasticsearch 嵌套字段与深度?通过 Kibana 检查文档深度?