From 015481acb5d15e86bdad77852698b1b04d79c654 Mon Sep 17 00:00:00 2001 From: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> Date: Fri, 12 Jul 2024 13:44:05 -0400 Subject: [PATCH] Add geopolygon query (#7665) * Add geopolygon query Signed-off-by: Fanit Kolchina * Update _query-dsl/geo-and-xy/geopolygon.md Co-authored-by: Melissa Vagi Signed-off-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Add link to index file Signed-off-by: Fanit Kolchina * Apply suggestions from code review Co-authored-by: Nathan Bower Signed-off-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> --------- Signed-off-by: Fanit Kolchina Signed-off-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> Co-authored-by: Melissa Vagi Co-authored-by: Nathan Bower --- _query-dsl/geo-and-xy/geopolygon.md | 177 ++++++++++++++++++++++++++++ _query-dsl/geo-and-xy/index.md | 2 +- images/geopolygon-query.png | Bin 0 -> 51100 bytes 3 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 _query-dsl/geo-and-xy/geopolygon.md create mode 100644 images/geopolygon-query.png diff --git a/_query-dsl/geo-and-xy/geopolygon.md b/_query-dsl/geo-and-xy/geopolygon.md new file mode 100644 index 0000000000..c53b1379cf --- /dev/null +++ b/_query-dsl/geo-and-xy/geopolygon.md @@ -0,0 +1,177 @@ +--- +layout: default +title: Geopolygon +parent: Geographic and xy queries +grand_parent: Query DSL +nav_order: 30 +--- + +# Geopolygon query + +A geopolygon query returns documents containing geopoints that are within the specified polygon. A document containing multiple geopoints matches the query if at least one geopoint matches the query. + +A polygon is specified by a list of vertices in coordinate form. Unlike specifying a polygon for a geoshape field, the polygon does not have to be closed (specifying the first and last points at the same is unnecessary). Though points do not have to follow either clockwise or counterclockwise order, it is recommended that you list them in either of these orders. This will ensure that the correct polygon is captured. + +The searched document field must be mapped as `geo_point`. +{: .note} + +## Example + +Create a mapping with the `point` field mapped as `geo_point`: + +```json +PUT /testindex1 +{ + "mappings": { + "properties": { + "point": { + "type": "geo_point" + } + } + } +} +``` +{% include copy-curl.html %} + +Index a geopoint, specifying its latitude and longitude: + +```json +PUT testindex1/_doc/1 +{ + "point": { + "lat": 73.71, + "lon": 41.32 + } +} +``` +{% include copy-curl.html %} + +Search for documents whose `point` objects are within the specified `geo_polygon`: + +```json +GET /testindex1/_search +{ + "query": { + "bool": { + "must": { + "match_all": {} + }, + "filter": { + "geo_polygon": { + "point": { + "points": [ + { "lat": 74.5627, "lon": 41.8645 }, + { "lat": 73.7562, "lon": 42.6526 }, + { "lat": 73.3245, "lon": 41.6189 }, + { "lat": 74.0060, "lon": 40.7128 } + ] + } + } + } + } + } +} +``` +{% include copy-curl.html %} + +The polygon specified in the preceding request is the quadrilateral depicted in the following image. The matching document is within this quadrilateral. The coordinates of the quadrilateral vertices are specified in `(latitude, longitude)` format. + +![Search for points within the specified quadrilateral]({{site.url}}{{site.baseurl}}/images/geopolygon-query.png) + +The response contains the matching document: + +```json +{ + "took": 6, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 1, + "relation": "eq" + }, + "max_score": 1, + "hits": [ + { + "_index": "testindex1", + "_id": "1", + "_score": 1, + "_source": { + "point": { + "lat": 73.71, + "lon": 41.32 + } + } + } + ] + } +} +``` + +In the preceding search request, you specified the polygon vertices in clockwise order: + +```json +"geo_polygon": { + "point": { + "points": [ + { "lat": 74.5627, "lon": 41.8645 }, + { "lat": 73.7562, "lon": 42.6526 }, + { "lat": 73.3245, "lon": 41.6189 }, + { "lat": 74.0060, "lon": 40.7128 } + ] + } +} +``` + +Alternatively, you can specify the vertices in counterclockwise order: + +```json +"geo_polygon": { + "point": { + "points": [ + { "lat": 74.5627, "lon": 41.8645 }, + { "lat": 74.0060, "lon": 40.7128 }, + { "lat": 73.3245, "lon": 41.6189 }, + { "lat": 73.7562, "lon": 42.6526 } + ] + } +} +``` + +The resulting query response contains the same matching document. + +However, if you specify the vertices in the following order: + +```json +"geo_polygon": { + "point": { + "points": [ + { "lat": 74.5627, "lon": 41.8645 }, + { "lat": 74.0060, "lon": 40.7128 }, + { "lat": 73.7562, "lon": 42.6526 }, + { "lat": 73.3245, "lon": 41.6189 } + ] + } +} +``` + +The response returns no results. + +## Request fields + +Geopolygon queries accept the following fields. + +Field | Data type | Description +:--- | :--- | :--- +`_name` | String | The name of the filter. Optional. +`validation_method` | String | The validation method. Valid values are `IGNORE_MALFORMED` (accept geopoints with invalid coordinates), `COERCE` (try to coerce coordinates to valid values), and `STRICT` (return an error when coordinates are invalid). Optional. Default is `STRICT`. +`ignore_unmapped` | Boolean | Specifies whether to ignore an unmapped field. If set to `true`, then the query does not return any documents that contain an unmapped field. If set to `false`, then an exception is thrown when the field is unmapped. Optional. Default is `false`. + +## Accepted formats + +You can specify the geopoint coordinates when indexing a document and searching for documents in any [format]({{site.url}}{{site.baseurl}}/opensearch/supported-field-types/geo-point#formats) accepted by the geopoint field type. \ No newline at end of file diff --git a/_query-dsl/geo-and-xy/index.md b/_query-dsl/geo-and-xy/index.md index cb0559927d..83cdbf08d7 100644 --- a/_query-dsl/geo-and-xy/index.md +++ b/_query-dsl/geo-and-xy/index.md @@ -30,7 +30,7 @@ OpenSearch provides the following geographic query types: - [**Geo-bounding box queries**]({{site.url}}{{site.baseurl}}/opensearch/query-dsl/geo-and-xy/geo-bounding-box/): Return documents with geopoint field values that are within a bounding box. - [**Geodistance queries**]({{site.url}}{{site.baseurl}}/query-dsl/geo-and-xy/geodistance/): Return documents with geopoints that are within a specified distance from the provided geopoint. -- **Geopolygon queries**: Return documents with geopoints that are within a polygon. +- [**Geopolygon queries**]({{site.url}}{{site.baseurl}}/query-dsl/geo-and-xy/geodistance/): Return documents containing geopoints that are within a polygon. - **Geoshape queries**: Return documents that contain: - Geoshapes and geopoints that have one of four spatial relations to the provided shape: `INTERSECTS`, `DISJOINT`, `WITHIN`, or `CONTAINS`. - Geopoints that intersect the provided shape. \ No newline at end of file diff --git a/images/geopolygon-query.png b/images/geopolygon-query.png new file mode 100644 index 0000000000000000000000000000000000000000..16d73628de93e9739aa702ef2b27f0d0ca43bc01 GIT binary patch literal 51100 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 E05%C=Z2$lO literal 0 HcmV?d00001