0

スペースを含むフィールドで検索を実行しています。分析されないようにしたいです。つまり、グラムに分割されず、単一のエンティティと見なされないようにします。Javaでこれを行うにはどうすればよいですか?

RESTHighLevelClient バージョン 7.4 を使用しています。

4

1 に答える 1

0

String は、Java アプリケーションで使用しているデータ型です。しかし、elasticsearch には、いくつかの文字列ベースのフィールド データ型があります。

Elasticsearch に保存するドキュメントのマッピングを定義する必要があります。話しているフィールドについては、マッピングでキーワード datatype を選択します。そのようなフィールドを持つドキュメントがインデックス化された後は、フィールドのマッピングを変更できないことに注意してください。したがって、新しいインデックスを作成して、たとえばマッピング レスト APIを使用して目的のマッピングを配置してみてください。先ではなく後で、データにインデックスを付けます。

ドキュメントのインデックスを作成する前にこれを行わないと、elasticsearch は、フィールドを含む最初のドキュメントによって提供される値に基づいて、フィールドのデータ型を推測します。おそらくそれが、アプリケーションの Java 文字列が Elasticsearch のテキスト データ型にマップされており、テキストの検索がキーワード フィールドの検索と異なる理由です。

乾杯&明けましておめでとうございます!

于 2020-01-01T14:30:59.500 に答える