ОК, допустим, что ваше текущее отображение индекса выглядит следующим образом:
PUT oldindex
{
"mappings": {
"doc": {
"properties": {
"latitude": {
"type": "float"
},
"longitude": {
"type": "float"
}
}
}
}
}
Вам необходимо создать новый индекс с соответствующим отображением, как показано ниже
PUT newindex
{
"mappings": {
"doc": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
}
И затем, вы можете просто использовать reindex API , чтобы скопировать старый индекс в новый с некоторыми дополнительными сценариями для создания поля местоположения:
POST _reindex
{
"source": {
"index": "oldindex",
},
"dest": {
"index": "newindex"
},
"script": {
"source": "ctx._source.location = ['lat': ctx._source.latitude, 'lon': ctx._source.longitude]; ctx._source.remove('latitude'); ctx._source.remove('longitude'); "
}
}
И вы готовы идти споле местоположения в вашем новом блестящем индексе!