4

spring-data-elasticsearch 1.1.2 を使用しています。Java アノテーションを使用して、フィールドを分析しないように指定しようとしています。

次の注釈を使用します。 @Field(index = FieldIndex.not_analyzed) private String category;

生成されたマッピングには、このフィールドの "index":"not_analyzed" は含まれません。

    "properties" : {
      "category" : {
        "type" : "string"
      },
      ...

これを行う方法について役立つドキュメントを見つけることができませんでしたが、うまくいくようです。

それはうまくいくはずですか?詳細情報はどこで入手できますか? どのようにデバッグするのが最善ですか?

ありがとうございました。

更新: 最新の 1.2.0 バージョンにも問題があります。

4

1 に答える 1

3

同様の質問がここで尋ねられます: Spring Data Elasticsearch の @Field アノテーションが機能しない

アプリケーションの起動時に、マッピングをクラスターに明示的に配置する必要があります。

elasticsearchTemplate.putMapping(YourDocument.class);

あなたのノード/クラスターは、あなたが入れようとしているドキュメントについて何も知りません。初めてそれを見て、まだ誰もそれについて何も彼に話しませんでした. Spring は、@Documents ではなく、コンポーネント、リポジトリなどのパッケージのみをスキャンします。よくわかりませんが、マッピングはクラスター構成の一部ではないため、クラスターの起動後にマッピングを指定する必要があると思います。

于 2015-11-10T07:48:04.493 に答える