У меня мало сомнений относительно шаблонов индекса и использования этих шаблонов при создании нового документа.1. PUT _template / template_1 Я упомянул только одно поле в файле отображения, которое анализируется пользователем.
{
"index_patterns": ["te*", "bar*"],
"settings":{
"analysis": {
"analyzer": {
"analyzer2": {
"filter": [
"standard"
],
"tokenizer": "whitespace"
},
"analyzer1": {
"filter": [
"standard"
],
"tokenizer": "tokenizer1"
}
},
"tokenizer": {
"tokenizer1": {
"min_gram": "3",
"tokenize_on_chars": [
"letter",
"digit"
],
"type": "edge_ngram",
"max_gram": "3"
}
}
}
},
"mappings": {
"_doc": {
"properties": {
"search": {
"type": "text",
"fields": {
"analyzer1": {
"type": "text",
"analyzer":"analyzer1"
},
"analyzer2": {
"type": "text",
"analyzer":"analyzer2"
},
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
_template/template_1
2.POST / tea / _doc / 1 создается новый документ этого типа с новыми метаданными
{
"search":"elastic",
"metadata":"search"
}
3.GET / tea / _doc / _mapping При получении файла сопоставления вновь добавленное поле используется по умолчаниюанализируется, а не на заказ анализируется.Как применить эти пользовательские анализаторы по умолчанию при обнаружении новых метаданных в документе
{
"tea": {
"mappings": {
"_doc": {
"properties": {
"metadata": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"search": {
"type": "text",
"fields": {
"analyzer1": {
"type": "text",
"analyzer": "analyzer1"
},
"analyzer2": {
"type": "text",
"analyzer": "analyzer2"
},
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}