2016-07-27 107 views
0

我正在使用Java API上的彈性搜索進行全文搜索。目標是將查詢字符串的每個單詞與字段(運算符和)匹配,並且能夠識別和匹配複數形式的單詞。elasticsearch spring不返回完全匹配

對於爲例:

Four salé應該找到Fours salés,同時Four sucré應該不會被發現。 (我的文檔是法語)

我已經嘗試了幾種方法來解決這個問題:

QueryBuilders.matchQuery("field",queryValue) 

該代碼可以找到一個單詞的單個或複數形式,但返回匹配的詞之一的所有結果queryValue。

QueryBuilders.mathcQuery("field",queryValue).operator(MatchQueryBuilder.Operator.AND) 

該代碼可以給每一個詞相匹配的結果,但它不做世界所產生複數。

我也嘗試了幾種不同於默認值的分析器,比如「雪球」,「法語」。奇怪的是,他們不會爲某些單詞返回完美匹配的結果。

任何人都可以找到解決辦法嗎?

+1

可能更改UTF編碼可能會起作用。你也可以嘗試過濾器來搜索特定的文檔和字段。 – KayV

回答