#elasticsearch #geopoints
Вопрос:
Elasticsearch (версия 7.1 AWS) выдает мне сообщение об ошибке при вставке данных WKT в поле geo_point через консоль Kibana. Это происходит при попытке сделать это по простому индексу
PUT my-geopoints
{
"mappings": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
с веб-сайта https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-point.html или мой собственный индекс с полем geo_point.
При запуске в консоли Kibana:
PUT my-geopoints/_doc/5
{
"text": "Geopoint as a WKT POINT primitive",
"location" : "POINT (-71.34 41.12)"
}
Сообщение об ошибке, которое я получаю, выглядит так:
{
"error":{
"root_cause": [
{
"type": "parse_exception",
"reason": "unsupported symbol [P] in geohash [POINT (-71.34 41.12)]"
}
],
"type": "mapper_parsing_exception",
"reason": "failed to parse field [location] of type [geo_point]",
"caused_by":{
"type": "parse_exception",
"reason": "unsupported symbol [P] in geohash [POINT (-71.34 41.12)]",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "unsupported symbol [P] in geohash [POINT (-71.34 41.12)]"
}
}
},
"status": 400
}
Теперь это происходит при массовой загрузке моих данных в отдельный индекс, который загружает данные геометрии WKT. Я не могу найти ничего, что указывало бы на какую-либо причину. Вчера и сегодня утром это работало, пока я не попробовал этот учебник, чтобы попытаться понять, почему учебник для гео расстояний (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-distance-query.html) не позволял мне иметь такое же сопоставление индексов для geo_shapes, как и для geo_points. Это будет отдельный вопрос сам по себе.
Ответ №1:
Мы обновили Elasticsearch с 7.1 до 7.10, и это исправило эту конкретную проблему.
Комментарии:
1. Правильно, это было исправлено в 7.4.0 !
Ответ №2:
Измените тип местоположения в сопоставлениях "type": "geo_point"
на "type": "geo_shape"
и попробуйте