У меня есть схема, которая фактически включает вложенный тип, как показано ниже.
Это основная схема.
@Document(indexName = "agreement")
public class PromotionSearchSchema {
@Field(type = FieldType.Nested, includeInParent = true)
private Promotion promotionproduct;
}
Теперь продвижение — это еще один объект внутри основной схемы. Поэтому я пометил его как вложенный тип. В объекте «Реклама» я пытаюсь добавить анализатор, как показано ниже.
@Setting(settingPath = "es-config/elastic-analyzer.json")
public class Promotion {
@Field(type = FieldType.Text, analyzer = "autocomplete_index", searchAnalyzer = "autocomplete_search")
private String promotionDescription;
}
Это мой эластичный анализатор.json
{
"analysis": {
"filter": {
"autocomplete_filter": {
"type": "edge_ngram",
"min_gram": 1,
"max_gram": 20
}
},
"analyzer": {
"autocomplete_search": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase"
]
},
"autocomplete_index": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"autocomplete_filter"
]
}
}
}
}
Когда мне нравится, это вовсе не создание полных сопоставлений в Elasticsearch. Он просто создает, как показано ниже
{
"agreement" : {
"mappings" : { }
}
}
Итак, мой вопрос заключается в том, как добавить анализаторы во вложенный тип. Любая помощь будет оценена по достоинству.