Я пытаюсь создать индекс в ES с помощью специального анализатора и сопоставления, используя JEST.
Я использую следующий код:
CreateIndex createIndex = new CreateIndex.Builder(indexName)
.settings(
ImmutableSettings.builder()
.loadFromClasspath(
"jestconfiguration.json"
).build().getAsMap()
).build();
JestResult result = client.execute(createIndex);
А это jestconfiguration.java
{
"settings": {
"analysis": {
"analyzer": {
"second": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"synonym"
]
}
},
"filter": {
"synonym" : {
"type" : "synonym",
"synonyms" : [
"smart phone => smartphone"
]
}
}
}
},
"mappings": {
"index_type": {
"properties": {
"Name": {
"type": "string",
"analyzer": "second"
}
}
}
}
}
Хотя индекс создается правильно с указанными настройками, раздел сопоставлений не работает, и я не могу установить сопоставление для поля Имя. У кого-нибудь есть идея?
Есть ли что-то вроде putmapping()
в шутке, позволяющее добавлять сопоставления? В идеале я хотел бы иметь возможность динамически устанавливать field_name, а не в файле .json.