Точка в запросе полигонов не соответствует документу - PullRequest
0 голосов
/ 11 октября 2018

Я новичок в Elasticsearch (использую версию 6.2.4 ), пробую запросы Point in Polygon (geo_shape)
Это мое отображение индекса

{
  "check": {
    "mappings": {
      "doc": {
        "properties": {
          "location": {
            "type": "geo_shape"
          }
        }
      }
    }
  }
}


У меня есть только один документ в индексе. location описывает контур в 19 парах широты и долготы

    {
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 1,
    "hits": [
      {
        "_index": "check",
        "_type": "doc",
        "_id": "1",
        "_score": 1,
        "_source": {
          "location": "POLYGON((-121.3606 38.118,-121.2137 38.097,-121.1175 38.007,-121.0795 37.906,-121.171 37.805,-121.171 37.752,-121.1939 37.702,-121.2361 37.661,-121.2975 37.641,-121.3606 37.638,-121.4186 37.652,-121.466 37.679,-121.5154 37.707,-121.5501 37.752,-121.5546 37.805,-121.6475 37.909,-121.605 38.008,-121.5078 38.098,-121.3606 38.118))"
        }
      }
    ]
  }
}


Я выполняю этот запрос

GET check/doc/_search
{
  "query": {
        "geo_shape": {
          "location": {
            "relation": "intersects",
            "shape": {
              "type": "point",
              "coordinates": [
                -121.935791, 37.702152
                ]
            }
          }
        }
  }
}


Запрос возвращает ноль документов.Я пробовал с обоими отношениями , поскольку пересекает , а содержит , но результаты равны нулю.
Если я рисую контур местоположения на Картах Google, я четко вижу, что точка запроса (long: -121.935791, широта: 37.702152) четко находится в контуре местоположения location contour

...