Привет, Все, что я использую elasticsearch-template.json, чтобы установить тип данных всех моих полей в строку. Ниже приведен фрагмент шаблона:Отображение elasticsearch для выбора всех полей с помощью шаблонов для изменения их типа данных Elasticsearch
{
"template": "logstash-*",
"settings": {
"index.refresh_interval": "5s",
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"logs": {
"_all": {
"enabled": true
},
"properties": {
"level1": {
"properties": {
"level2": {
"properties": {
"_all": {"type": "string"}
}
}
}
}
}
}
}
}
Здесь под level2 я получил много полей, создаваемых в я хочу, чтобы установить их все строки, как я могу установить его. Я попробовал символ «*», а также символ «%», чтобы выбрать все поля. но, к сожалению, он добавляется только как новое поле для отображения. Как указать в шаблоне выбрать все поля под определенным уровнем?
Я попытался выше подход первого. Но так получилось, что для первого документа, который он получает, он устанавливает тип в строку, но для полей, которые пусты или не имеют значения, он устанавливает его объекту, а затем следующий документ, который имеет значения для этих пустых полей, создает ошибку. –
Вам нужно удалить индекс и перезагрузить данные, чтобы заставить его принять шаблон – Alcanzar
Да, это то, что я сделал, и он принимает шаблон, но для случая, как я упомянул выше, он сначала устанавливает пустые поля как тип данных объекта а затем, когда следующий документ прибывает со значением поля в виде строки/числового, он не может его индексировать –