2016-06-18 153 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:”,您可能需要成本化一个没有标记为“:”的分析器,这样您就可以用一个简单的“匹配”查询而不是通配符。