2016-07-27 20 views
0

私はJava APIの弾性検索を使用して全文検索を行っています。オブジェクトは、クエリ文字列の各単語をフィールド(演算子And)とマッチさせ、単語の複数形を認識して一致させることができます。 exempleについてはelasticsearchスプリングリターン完全一致

Four saléFours salésを見つける必要があり、その間Four sucréが見つかりべきではありません。 (マイドキュメントはフランス語である)

私はこの問題を解決するには、いくつかの方法を試してみた:このコードは、単語の単数または複数のフォームを見つけることができます

QueryBuilders.matchQuery("field",queryValue) 

が、の言葉の一つに一致するすべての結果を返します。 queryValue。

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

このコードは、すべての単語に一致する結果を与えることができますが、それは複数形の語幹世界をいたしません。

私はまた、 "snowball"、 "french"のようなデフォルトのアナライザーとは異なるいくつかのアナライザーを試しました。奇妙なことに、彼らはいくつかの単語に完全一致の結果を返さない。

誰にも解決策がありますか?

+1

おそらくUTFエンコーディングを変更するとうまくいく可能性があります。また、フィルタを試して、ドキュメントやフィールドに固有の検索を行うこともできます。 – KayV

答えて