Надлежащий запрос строки в эластичном поиске? - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь выполнить запрос в ES для строки (в Java). Проблема в том, что он дает мне 2 очка с буфером, который не собирается точно выполнять пересечение с другими записями.

Я хочу посмотреть, пересекает ли что-нибудь фактическую линию, включая связь между точками. Возможно ли это?

    if (literalValue instanceof LineString) {
      Coordinate[] coords = ((LineString) literalValue).getCoordinates();
      Arrays.stream(coords)
          .forEach(
              coordPair -> {
                GeoDistanceQueryBuilder distanceBuilder =
                    new GeoDistanceQueryBuilder(Metacard.ANY_GEO);
                distanceBuilder.point(coordPair.getOrdinate(1), coordPair.getOrdinate(0));
                distanceBuilder.distance(
                    filter.getDistance(), DistanceUnit.fromString(filter.getDistanceUnits()));
                boolQueryBuilder.should(distanceBuilder);
              });
      return boolQueryBuilder;
    }

Это не удалось:

{
    "query":{
        "bool": {
            "filter": {
                "geo_shape": {
                    "GEO.WKT": {
                        "shape": {
                            "type": "linestring",
                            "coordinates" : [[29, 44], [24, 35], [34, 43]]
                        },
                        "relation": "intersects"
                    }
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...