поле индекса elasticsearch типа geo_point не позволяет вводить координаты WKT

#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" и попробуйте