2016-10-13 56 views
0

我有一個需求,我只需要返回其註釋不以String開頭的那些記錄。 PFB查詢和這種方法不起作用。需要幫助如何在'elasticsearch 2.x'中搜索'開始'搜索

{ 
    "size": 0, 
    "fields": ["id","comment"], 
    "query": { 
    "bool": { 
     "must_not": [ 
     { 
      "wildcard": { 
      "comment": 
       "AG//*" 
      } 

     } 
     ] 
    } 
    } 
} 
+0

你能提供你的映射嗎?是評論欄not_analyzed? – ChintanShah25

回答

0

首先,你應該從你的查詢(或設置所需的大小)刪除"size": 0看到的結果。

現在,elasticsearch落實「開始與」最好的辦法是使用Prefix Query如下:

{ 
    "fields": ["id", "comment"], 
    "query": { 
     "bool": { 
     "must_not": [ 
      { 
       "prefix": { 
        "comment": "AG" <-- No need for any wildcards 
       } 
      } 
     ] 
     } 
    } 
} 

注:前綴查詢和通配符查詢纔有意義上not_analyzed字段,因此請確保您的"comment"字段具有相同的映射。