Не могу вставить Geo Shapes в эластичный поиск

Я пытаюсь переместить мои данные из sql в asticsearch. У меня есть исключение каждый раз, когда я пытаюсь добавить форму многоугольника.

Я использую WktReader, чтобы прочитать WKT и добавить его в класс JeoJson. Класс содержит тип (многоугольник) и координаты

Построение координат (в C#):

{ [ [ [ x,y ], [ x,y ], [ x,y ], [ x,y ], [ x,y ] ] ] }

Отображение ГЕОМЕТРИЙ в эластичном поиске:

"GEOMETRIES" : {
    "type" : "nested",
    "properties" : {
        "AREA" : { "type" : "double" },
        "CENTROID" : {
            "type" : "geo_point",
            "geohash" : true,
            "geohash_preflix" : true
        },
        "KEY" : {
            "type" : "string",
            "index" : "not_analyzed"
        },
        "SHAPE" : {
            "type" : "geo_shape"
        }
    }
}

Есть два исключения:

1

MapperParsingException[failed to parse [GEOMETRIES.SHAPE]]; nested: IllegalArgumentException[Invalid number of points in LinearRing (found 3 - must be 0 or >= 4)];

2

MapperParsingException[failed to parse [GEOMETRIES.SHAPE]]; nested: InvalidShapeException[provided shape has duplicate consecutive coordinates at: (number, number, NaN)];

1 ответ

Я решил это.

IllegalArgumentException произошел из-за того, что первая и последняя координаты полигонов были центроидом, и только вторая и последняя перед ним были реальной первой и последней точкой. все, что я сделал, это удалил первый и последний пункты.

InvalidShapeException произошла из-за того, что некоторые многоугольники в основном являются линией, а asticsearch не нравится

В конце обе ошибки были, потому что полигоны, которые я получил, были перепутаны

Другие вопросы по тегам