2016-06-18 89 views
2

我想要在message字段中與字符串":Feed:"完全匹配,並且每天返回所有這些記錄。 json我似乎也匹配純字" feed "。我不知道我哪裏出錯了。我需要將"constant_score"添加到此查詢JSON嗎?該JSON我目前如下圖所示:彈性搜索查詢中的完全匹配

{ 
    "query": { 
     "bool": { 
      "must": { 
       "query_string": { 
        "fields": ["message"], 
        "query": "\\:Feed\\:" 
       } 
      }, 
      "must": { 
       "range": { 
        "timestamp": { 
         "gte": "now-1d", 
         "lte": "now" 
        } 
       } 
      } 
     } 
    } 
} 
+0

嘗試設置消息到{index:「not_analyzed」}映射 – keety

+0

@keety感謝您的輸入。我沒有權限更改索引不幸的。我相信我應該搜索'* \\:Feed \\:*',如果該字段是「not_analyze」。所以看起來我運氣不好。 – Dhanesh

回答

3

如這裏指出:Finding Exact Values,因爲該領域進行了分析索引的時候 - 你有沒有確切的匹配它的令牌(「:」)的方式。每當令牌可以被搜索時,映射應該是「not_analyze」並且數據需要被重新索引。

如果您希望能夠在消息字段中僅僅容易地匹配「:feed:」,您可能需要成本化一個沒有標記爲「:」的分析器,這樣您就可以用一個簡單的「匹配」查詢而不是通配符。