У меня есть модель, как это:Elasticsearch. Не удается найти обычая анализатор
@Getter
@Setter
@Document(indexName = "indexName", type = "typeName")
@Setting(settingPath = "/elastic/elastic-setting.json")
public class Model extends BaseModel {
@Field(type = FieldType.String, index = FieldIndex.analyzed, analyzer = "customAnalyzer")
private String name;
}
И у меня есть эластичная setting.json внутри ../resources/elastic/elastic-setting.json:
{
"index": {
"number_of_shards": "1",
"number_of_replicas": "0",
"analysis": {
"analyzer": {
"customAnalyzer": {
"type": "custom",
"tokenizer": "uax_url_email"
}
}
}
}
}
I очистите мою эластичную БД, и когда я начну свою заявку, у меня есть исключение:
MapperParsingException[analyzer [customAnalyzer] not found for field [name]]
Что не так с моим кодом? Помогите мне, пожалуйста!
EDIT
Val, я подумал @Setting, как дополнение к @Document, но похоже, что они являются взаимозаменяемыми. В моем случае я также иметь другую модель, с:
@Document(indexName = "indexName", type = "anotherTypeName")
Итак, первый я создать индекс с именем «IndexName» для anotherModel, рядом, когда упругая подготовки модели, видим, что индекс с именем «IndexName» уже и он не использует @Setting.
Теперь у меня есть еще один вопрос. Как добавить пользовательский анализатор в уже созданный индекс в java-код, например, в InitializingBean. Что-то вроде - создан ли мой анализатор? нет - создать. да - не создавать.
Не уверен, что вы имеете в виду ... – Val
Я извиняюсь, у меня другая проблема. Посмотрите на мое редактирование, пожалуйста. – DamienMiheev
Я обновил свой ответ – Val