将elasticsearch日期范围查询与空值组合

时间:2016-12-14 09:53:00

标签: elasticsearch

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

(DataTable)Session["data"];

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

1 个答案:

答案 0 :(得分:11)

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

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

在Elasticsearch索引中, null 值不存在,因此我们使用 exists query 。使用缺少的查询将不那么详细,但它是deprecated since 2.2

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