2017-07-11 16 views
0

我有一个问题,当我做出一个字符串包含空间match_phrase_query,但并不总是=/Elasticsearch match_phrase_query与空间不工作

3个例子:

1/

{ 
    "query" : { 
       "match_phrase_prefix" : { 
       "username" : { 
        "query":"maury" 
       } 
       } 
    } 
} 

这个第一个例子工作并给我结果。

2/

{ 
    "query" : { 
       "match_phrase_prefix" : { 
       "username" : { 
        "query":"maury chelsea" 
       } 
       } 
    } 
} 

第二个例子,用全名工作过。

3/

{ 
    "query" : { 
       "match_phrase_prefix" : { 
       "username" : { 
        "query":"maury ch" 
       } 
       } 
    } 
} 

本例没有工作,我有没有结果的回报。我不明白,因为它使用1个单词和2个单词,第2个单词至少有3-4个字符,这取决于我搜索的人的姓名。

您是否已经遇到此问题?

谢谢你,朱利

+0

这可能是因为你有很多以'ch'开头的术语。尝试添加默认为50的'max_expansions'参数并将其增加到(例如)100以查看您是否得到结果。 [官方文档解释](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase-prefix.html)为什么你遇到这个问题。 – Val

+0

请不要在标题中附加_resolved_。将答案标记为已接受,告诉其他人,现在已经解决了这个问题。请参加[旅游]以获取进一步帮助。 – Bugs

回答

0

这是因为你有很多方面的开始ch。尝试添加max_expansions参数(默认为50)并将其增加到(例如)100以查看您是否得到结果。

{ 
    "query" : { 
       "match_phrase_prefix" : { 
       "username" : { 
        "query":"maury ch", 
        "max_expansions": 100  <--- add this 
       } 
       } 
    } 
} 

official doc explains为什么你遇到这个问题。