Я удалил все данные, удалил свой индекс и выполнил следующую команду после проверки отсутствия других шаблонов:
curl -XPUT https://search-xxxx.us-east-1.es.amazonaws.com/_template/all -d '
{
"template": "*",
"settings": {
"index.refresh_interval": "5s"
},
"mappings": {
"_default_": {
"dynamic_templates": [
{
"string_fields": {
"match": "*",
"match_mapping_type": "string",
"mapping": {
"index": "not_analyzed",
"omit_norms": true,
"type": "string"
}
}
}
],
"properties": {
"@version": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
'
Затем я продолжил добавлять некоторые документы и ожидал, что строковые поля не будут проанализированы, но все равно получаю то же поведение: предупреждение от кибаны при выполнении визуализации о том, что поле анализируется (следовательно, разделяется), поэтому результаты искажаются (что они явно есть).
Выполнение следующего перед добавлением любых данных успешно добавило инструкцию индекса «not_analyzed» к свойству oneFieldThatCould, поэтому это работает в случае одного свойства, но мне нужно, чтобы это было общим правилом для всех динамически добавляемых свойств:
curl -XPUT https://search-xxxx.us-east-1.es.amazonaws.com/production/_mapping/events -d '
{
"properties": {
"oneFieldThatCould": {
"index": "not_analyzed",
"type": "string"
}
}
}
'