2016-12-14 30 views
6

我想用日期範圍查詢類似如下:結合elasticsearch日期範圍查詢空值

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

我的索引包含期限爲空值,以及。我希望在搜索結果中包含那些無效日期的文檔以及範圍內的日期。我怎麼能結合日期範圍與「must_not」存在查詢彈性5.x

+0

你的意思是避免你的日期範圍內的空值? – Kulasangar

回答

5

我認爲bool查詢會做的伎倆。

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

在Elasticsearch指標值不存在的,所以我們用存在查詢。使用缺少的查詢將不那麼冗長,但它是deprecated since 2.2

我沒有足夠的信息,所以我的例子查詢上下文運行,但也許過濾背景會在這種情況下,更方便。