2015-12-06 48 views
1

我有這個疑問:phrase_prefix查詢返回空的結果,如果我搜索3個字符,但返回非空的結果,如果我搜索4個字符

"match": { 
    "_all": { 
    "query": "ana", 
    "type": "phrase_prefix" 
    } 
} 

此查詢不與短語返回任何東西「全日空「這是3個字符長度,但如果我搜索4個字詞組‘ANAT’返回結果:

match": { 
    "_all": { 
    "query": "anat", 
    "type": "phrase_prefix" 
    } 
} 

可能是什麼問題就在這裏?我不知道爲什麼,以及如何解決這個問題。

謝謝!

回答

1

這可能是由於max_expansions參數被設置爲10

它的默認值試試這個

{ 
    "query": { 
    "match": { 
     "_all": { 
     "query": "ana", 
     "type": "phrase_prefix", 
     "max_expansions": 100 
     } 
    } 
    } 
} 

嘗試「max_expansions」的價值觀不同,不讓它過大,否則會需要時間查詢返回

這是否有幫助?

+0

嗨,謝謝。這適用於「max_expansions」:200.對此有任何解釋嗎?我沒有模糊地做這個查詢,我只是想通過前綴來完全匹配。謝謝 !!!! – SlavaG

+0

[This](http://elasticsearch-users.115913.n3.nabble.com/How-exactly-works-quot-max-expansions-quot-in-match-phrase-prefix-query-td4030146.html),將會幫助你,'max_expansions'工作的方式是,它試圖按照字母順序查找給定前綴的值,所以_anaa_,_anab_等。 – ChintanShah25

+0

謝謝,這真的很有幫助。你認爲max_expansion設置爲150甚至200是不是太大? – SlavaG