を取り、持っていなかった:春データElasticsearch設定注釈は、次のように定義されたクラスを、私は春のデータ弾性検索をしようとしている効果
設定ファイルには、この のように見えた、/src/main/settings/setting.json
下にある
@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(indexName = "master", type = "master", shards = 1, replicas = 0)
@Setting(settingPath = "/settings/setting.json")
public class Master {
@Id
private String id;
@MultiField(mainField = @Field(type = FieldType.String, store = true),
otherFields = {
@InnerField(suffix = "autocomplete", type = FieldType.String, indexAnalyzer = "autocomplete", searchAnalyzer = "standard")
}
)
private String firstName;
private String lastName;
}
{
"index": {
"analysis": {
"filter": {
"autocomplete_filter": {
"type": "edge_ngram",
"min_gram": 1,
"max_gram": 20
}
},
"analyzer": {
"autocomplete": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"autocomplete_filter"
]
}
}
}
}
}
私は最初のインデックスを削除して、私のテストクラスを走っており、この
elasticsearchTemplate.deleteIndex(Master.class);
elasticsearchTemplate.createIndex(Master.class);
elasticsearchTemplate.putMapping(Master.class);
elasticsearchTemplate.refresh(Master.class);
のようにインデックスを再作成
しかし、私はインデックスに何かを保存しようとするとMapperParsingExceptionため、このエラーメッセージがあります:
2017-10-04 18:56:31.806 ERROR 2942 --- [ main] .d.e.r.s.AbstractElasticsearchRepository : failed to load elasticsearch nodes : org.elasticsearch.index.mapper.MapperParsingException: analyzer [autocomplete] not found for field [autocomplete]
はこれを理解しようとしている4時間を過ごしたが、デバッグモードのログ、何を見ました。
コンマを削除してJSON形式を破損しようとしましたが、JSONが解釈されるように壊れました。
RestAPIを使用してマスタインデックスを照会しましたが、設定にオートコンプリートアナライザまたはアナライザが含まれていないようです。
奇妙なことは、このエラーでも自分のドキュメントを保存して照会できることです。しかし、私はこのアナライザーが欲しいです。
ところで、これは親子関係の親クラスです(該当する場合)。
この回答はhttps://stackoverflow.com/a/32007627/4604579に役立ちますか? – Val