私は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"のようなデフォルトのアナライザーとは異なるいくつかのアナライザーを試しました。奇妙なことに、彼らはいくつかの単語に完全一致の結果を返さない。
誰にも解決策がありますか?
おそらくUTFエンコーディングを変更するとうまくいく可能性があります。また、フィルタを試して、ドキュメントやフィールドに固有の検索を行うこともできます。 – KayV