2013-02-14 107 views
3

我正在設置一個簡單的搜索,它會返回一個自定義排序的簡單結果,我根據自定義得分返回的排序很好。Elasticsearch查詢結果太多

的問題是,該查詢

"query": { 
    "query_string": { 
     "query": query_term, 
     "fields": ["name_auto"], 
    } 
} 

注:name_auto是鬆緊帶的邊緣ñ克領域

我總是設置此外,如果查詢沒有任何意義的結果。

例子:

我已經填充了所有的Android應用程序的名稱的elastcisearch指數。 如果我搜索我回來通過的,menans Play商店的評論數量排序與之相關的所有結果[臉譜,Facebook的信使,...]

的問題是,當我查詢像faceomeuselesschars我仍然得到了與以前相同的結果,但肯定沒有什麼匹配「someuselesschars」。

任何人可以幫助約

+0

也許您的最小克大小足以匹配您的查詢的開始,並且您的查詢也正在由ngram分析器處理? – LeeGee 2014-10-23 12:43:34

回答

2

ElasticSearch總是會返回符合您查詢的結果,即使這些結果的分數差。您對'facesomeuselesschars'的查詢將匹配由於您的ngram而具有'face'的任何內容(例如,您的查詢的前四個字符將與索引中的多個標記匹配)。

查詢中其餘的字符將簡單地降低返回匹配的分數,但不會阻止它被返回。

如果要設置結果必須達到的最低分數,可以使用min_score參數。