Elastic Searchを使用していますが、カスタムアナライザーが適用されている属性でフレーズ検索を実行できません。
カスタムアナライザーは次のように言及されています:
"settings" : {
"analysis.analyzer.string_lowercase.type" : "custom",
"analysis.analyzer.string_lowercase.tokenizer" : "keyword",
"analysis.analyzer.string_lowercase.filter" : "lowercase"
}
属性値は、「水たまりに入る、水たまりから出る」のようになります。または、任意の文字列にすることができます。
私は以下を使用してみました:
1) **(Not worked)** QueryBuilders.queryString("*into the puddle*").autoGeneratePhraseQueries(true).defaultOperator(Operator.AND);
2) **(Not worked)** QueryBuilders.matchPhraseQuery(attribute, "into the puddle");
3) **(Not worked)** QueryBuilders.queryString("*into the puddle*").autoGeneratePhraseQueries(true).defaultOperator(Operator.AND).analyzeWildcard(true);
ただし、幸い1を試してみてください。ネストされたオブジェクトでは、正常に機能します。
FilterBuilders.nestedFilter(attribute, queryString("*into the puddle*").field(attribute)
.defaultOperator(Operator.AND).analyzeWildcard(true));