3

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));
4

1 に答える 1

1

1)-3)フィールドが欠落しているようであるため、_allフィールドを検索しています。これは、標準のアナライザーを使用して索引付けされていると思います。

于 2012-11-06T12:54:07.690 に答える