2014-10-27 203 views
3

尝试使用query_string获取通配符并弹性搜索精确词组搜索时出现问题。弹性搜索在query_string中使用通配符精确搜索

想要允许返回的结果将成为所有变体的精确短语。即“库尔斯酿酒”,“库尔斯啤酒厂”,“银子弹啤酒酿造”等

POST _search 
{ 
"query": { 
    "query_string": { 
    "default_operator": "AND", 
    "analyze_wildcard": true, 
    "query": "\"coors brew*\"" 
    } 
} 
} 

我没有结婚这种方法,而是想搜索的大多数文件,找到比赛对1或2个字段。

+0

请记住,由于查询分析结果,您的查询将匹配“Coors Something_I_Didn't_Really_Wanted_To_Be_Matched Brewery”。如果我没有弄错,你应该使用一些奇特的分析仪来处理“字符”。 – 2014-10-30 22:24:26

回答

1

对于match_phrase_prefix查询(documentation),它似乎是一个完美的用例:你试过了吗?

如果您需要同时在多个字段上进行查询,请使用phrase_prefix类型(documentation)查看multi_match查询。

与基于wilcard的query_string查询的区别在于匹配查询未解析,尽管不支持query_string syntax