Изменение отображения поля для ВСЕХ LOGSTASH. Созданные индексы.
Я хотел бы изменить тип поля location
к географической точке. Я использую ES с Logstash, как вы знаете, индексы генерируются с именем logstash-yyyy-mm-dd
Сначала я создал индекс logstash и назвал его logstash-2016-03-29
, вот так:
curl -XPUT 'http://localhost:9200/logstash-2016-03-29'
Затем я изменил отображение для предположительно всех индексов, называемых Logstash-*
используя следующее:
curl -XPOST "http://localhost:9200/logstash-*/_mapping/logs" -d '{
"properties" : {
"location" : { "type":"geo_point" }
}
}'
И когда я запустил файл конфигурации Logstash, все location
поля в индексе logstash-2016-03-29
действительно были типа geo_point
,
Однако сегодня автоматически сгенерированный индекс logstash-2016-03-30
имел местоположение поля типа String
вместо geo_point
, Я думал, что тип должен применяться к любому индексу, который начинается с имени logstash-*
, Видимо, я был не прав. Как я могу это исправить, чтобы любой будущий индекс, созданный logstash, который имеет location
поле будет иметь этот тип поля установлен в geo_point
вместо строки?
Благодарю.
1 ответ
Вы должны определить это, используя шаблон индекса
curl -XPUT localhost:9200/_template/template_2 -d '
{
"template" : "logstash-",
"mappings" : {
"logs" : {
"properties": {
"location" : { "type" : "geo_point" }
}
}
}
}
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html