From e1c060ab43b7faaadcab914ffa595cb0cedfb6c3 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Wed, 28 Aug 2019 13:01:01 -0700 Subject: [PATCH] Add Circle Processor (#43851) add circle-processor that translates circles to polygons --- .../images/spatial/error_distance.png | Bin 0 -> 197198 bytes docs/reference/ingest/ingest-node.asciidoc | 1 + .../ingest/processors/circle.asciidoc | 165 +++++++++++ .../ingest/ConfigurationUtils.java | 20 ++ .../xpack/spatial/SpatialPlugin.java | 10 +- .../xpack/spatial/SpatialUtils.java | 101 +++++++ .../xpack/spatial/ingest/CircleProcessor.java | 168 +++++++++++ .../xpack/spatial/SpatialUtilsTests.java | 63 ++++ .../ingest/CircleProcessorFactoryTests.java | 94 ++++++ .../spatial/ingest/CircleProcessorTests.java | 277 ++++++++++++++++++ 10 files changed, 898 insertions(+), 1 deletion(-) create mode 100644 docs/reference/images/spatial/error_distance.png create mode 100644 docs/reference/ingest/processors/circle.asciidoc create mode 100644 x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/SpatialUtils.java create mode 100644 x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/ingest/CircleProcessor.java create mode 100644 x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialUtilsTests.java create mode 100644 x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/ingest/CircleProcessorFactoryTests.java create mode 100644 x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/ingest/CircleProcessorTests.java diff --git a/docs/reference/images/spatial/error_distance.png b/docs/reference/images/spatial/error_distance.png new file mode 100644 index 0000000000000000000000000000000000000000..a3274d778c0473b2c377ad47030cf9f60cb1dca5 GIT binary patch literal 197198 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

|+teNyjoB{5B`1D zC$dfi7qmE106*02IXc44*W_EmDF5_GrF_zbnu+`T~IFf6S`JHlu} zj*!l$ecL-R0Re$bqE&ygYDWJUht`(Qv%iYEuQA-I&Gra7z502-SIx@W;Rce>4DW>s zfs4giU(Ab&m-BQ*KV}z))yXEPk|>^wRR=7!ACMl$=W0IR7iKtC?HRdHSHo%N z+gI;7ca=a#6@5|h@NqOZ9s>ET&9k^PU+oOm=a`kocP4)J*96&dg4_(>!IvA3w0faq~W2gx4VTShzmm* zFjJ6Udx<`%bV=AgsT>~vvohOutNdrh{ph3*_nL9QiED0pmi?L>(bch1ry7IaimHUN zTys_k4ui2JLP^vsmd{;|fcrNKMgN@Z{Rt8Om-`~f)9{^{dC0DKG`MP-@|OIN|6FF8 zWu3S|xH+_$wrs0|j+*!!O9B{}1kv$%Qp79^zP0nYE|X<<9lpJkI#v@L#k$+tJ@21T zLk$>~dyq6LcFDmZ<9Walfxb`*TEyrDJio29Zz-konzA#!?aQ^ART6YT+L}_st^oC} z0RN+R|8ZP}ND#Eh*%Kl97e5aTNV@Ki<;77+%{1Dt%;_w)KOvWJcxC|R(_Qw*`bY@W z*bL|3O-Af0@Z#egKiPR>)u-oIPGrmg7W5g58U*m4%Cq{link(0;suA*<0$jJ?dusv zpZBWS!vJn4;G0?HHNhYJs^6I@d=U#wpi%G& zWj1Uz^C!^Xz-mB%f|*R?;O^kF!(H>;0DGzHZSeTwhY@}4ega952?*C&D*lWm7~3Zx zKA6Apc{y`00fIqug)%q?VsLiq))GjpYC^SBW2qi6X9KGT

vhIPZGenyu`8Y} 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 QE8yq7l%iyXxW51Y14O&zVE_OC literal 0 HcmV?d00001 diff --git a/docs/reference/ingest/ingest-node.asciidoc b/docs/reference/ingest/ingest-node.asciidoc index f955f25bdc2fb..e0f5254f8f0cd 100644 --- a/docs/reference/ingest/ingest-node.asciidoc +++ b/docs/reference/ingest/ingest-node.asciidoc @@ -839,6 +839,7 @@ See {plugins}/ingest.html[Ingest plugins] for information about the available in include::processors/append.asciidoc[] include::processors/bytes.asciidoc[] +include::processors/circle.asciidoc[] include::processors/convert.asciidoc[] include::processors/date.asciidoc[] include::processors/date-index-name.asciidoc[] diff --git a/docs/reference/ingest/processors/circle.asciidoc b/docs/reference/ingest/processors/circle.asciidoc new file mode 100644 index 0000000000000..97120fe918154 --- /dev/null +++ b/docs/reference/ingest/processors/circle.asciidoc @@ -0,0 +1,165 @@ +[role="xpack"] +[testenv="basic"] +[[ingest-circle-processor]] +=== Circle Processor +Converts circle definitions of shapes to regular polygons which approximate them. + +[[circle-processor-options]] +.Circle Processor Options +[options="header"] +|====== +| Name | Required | Default | Description +| `field` | yes | - | The string-valued field to trim whitespace from +| `target_field` | no | `field` | The field to assign the polygon shape to, by default `field` is updated in-place +| `ignore_missing` | no | `false` | If `true` and `field` does not exist, the processor quietly exits without modifying the document +| `error_distance` | yes | - | The difference between the resulting inscribed distance from center to side and the circle's radius (measured in meters for `geo_shape`, unit-less for `shape`) +| `shape_type` | yes | - | which field mapping type is to be used when processing the circle: `geo_shape` or `shape` +include::common-options.asciidoc[] +|====== + + +image:images/spatial/error_distance.png[] + +[source,js] +-------------------------------------------------- +PUT circles +{ + "mappings": { + "properties": { + "circle": { + "type": "geo_shape" + } + } + } +} + +PUT _ingest/pipeline/polygonize_circles +{ + "description": "translate circle to polygon", + "processors": [ + { + "circle": { + "field": "circle", + "error_distance": 28.0, + "shape_type": "geo_shape" + } + } + ] +} +-------------------------------------------------- +// CONSOLE + +Using the above pipeline, we can attempt to index a document into the `circles` index. +The circle can be represented as either a WKT circle or a GeoJSON circle. The resulting +polygon will be represented and indexed using the same format as the input circle. WKT will +be translated to a WKT polygon, and GeoJSON circles will be translated to GeoJSON polygons. + +==== Example: Circle defined in Well Known Text + +In this example a circle defined in WKT format is indexed + +[source,js] +-------------------------------------------------- +PUT circles/_doc/1?pipeline=polygonize_circles +{ + "circle": "CIRCLE (30 10 40)" +} + +GET circles/_doc/1 +-------------------------------------------------- +// CONSOLE +// TEST[continued] + +The response from the above index request: + +[source,js] +-------------------------------------------------- +{ + "found": true, + "_index": "circles", + "_type": "_doc", + "_id": "1", + "_version": 1, + "_seq_no": 22, + "_primary_term": 1, + "_source": { + "circle": "polygon ((30.000365257263184 10.0, 30.000111397193788 10.00034284530941, 29.999706043744222 10.000213571721195, 29.999706043744222 9.999786428278805, 30.000111397193788 9.99965715469059, 30.000365257263184 10.0))" + } +} +-------------------------------------------------- +// TESTRESPONSE[s/"_seq_no": \d+/"_seq_no" : $body._seq_no/ s/"_primary_term": 1/"_primary_term" : $body._primary_term/] + +==== Example: Circle defined in GeoJSON + +In this example a circle defined in GeoJSON format is indexed + +[source,js] +-------------------------------------------------- +PUT circles/_doc/2?pipeline=polygonize_circles +{ + "circle": { + "type": "circle", + "radius": "40m", + "coordinates": [30, 10] + } +} + +GET circles/_doc/2 +-------------------------------------------------- +// CONSOLE +// TEST[continued] + +The response from the above index request: + +[source,js] +-------------------------------------------------- +{ + "found": true, + "_index": "circles", + "_type": "_doc", + "_id": "2", + "_version": 1, + "_seq_no": 22, + "_primary_term": 1, + "_source": { + "circle": { + "coordinates": [ + [ + [30.000365257263184, 10.0], + [30.000111397193788, 10.00034284530941], + [29.999706043744222, 10.000213571721195], + [29.999706043744222, 9.999786428278805], + [30.000111397193788, 9.99965715469059], + [30.000365257263184, 10.0] + ] + ], + "type": "polygon" + } + } +} +-------------------------------------------------- +// TESTRESPONSE[s/"_seq_no": \d+/"_seq_no" : $body._seq_no/ s/"_primary_term": 1/"_primary_term" : $body._primary_term/] + + +==== Notes on Accuracy + +Accuracy of the polygon that represents the circle is defined as `error_distance`. The smaller this +difference is, the closer to a perfect circle the polygon is. + +Below is a table that aims to help capture how the radius of the circle affects the resulting number of sides +of the polygon given different inputs. + +The minimum number of sides is `4` and the maximum is `1000`. + +[[circle-processor-accuracy]] +.Circle Processor Accuracy +[options="header"] +|====== +| error_distance | radius in meters | number of sides of polygon +| 1.00 | 1.0 | 4 +| 1.00 | 10.0 | 14 +| 1.00 | 100.0 | 45 +| 1.00 | 1000.0 | 141 +| 1.00 | 10000.0 | 445 +| 1.00 | 100000.0 | 1000 +|====== diff --git a/server/src/main/java/org/elasticsearch/ingest/ConfigurationUtils.java b/server/src/main/java/org/elasticsearch/ingest/ConfigurationUtils.java index 29ae578a64371..c725157d8de0c 100644 --- a/server/src/main/java/org/elasticsearch/ingest/ConfigurationUtils.java +++ b/server/src/main/java/org/elasticsearch/ingest/ConfigurationUtils.java @@ -189,6 +189,26 @@ public static Integer readIntProperty(String processorType, String processorTag, } } + /** + * Returns and removes the specified property from the specified configuration map. + * + * If the property value isn't of type int a {@link ElasticsearchParseException} is thrown. + * If the property is missing an {@link ElasticsearchParseException} is thrown + */ + public static Double readDoubleProperty(String processorType, String processorTag, Map configuration, + String propertyName) { + Object value = configuration.remove(propertyName); + if (value == null) { + throw newConfigurationException(processorType, processorTag, propertyName, "required property is missing"); + } + try { + return Double.parseDouble(value.toString()); + } catch (Exception e) { + throw newConfigurationException(processorType, processorTag, propertyName, + "property cannot be converted to a double [" + value.toString() + "]"); + } + } + /** * Returns and removes the specified property of type list from the specified configuration map. * diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/SpatialPlugin.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/SpatialPlugin.java index b91a6f335ed47..b15d3e620d203 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/SpatialPlugin.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/SpatialPlugin.java @@ -9,7 +9,9 @@ import org.elasticsearch.action.ActionResponse; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.mapper.Mapper; +import org.elasticsearch.ingest.Processor; import org.elasticsearch.plugins.ActionPlugin; +import org.elasticsearch.plugins.IngestPlugin; import org.elasticsearch.plugins.MapperPlugin; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.plugins.SearchPlugin; @@ -17,6 +19,7 @@ import org.elasticsearch.xpack.core.action.XPackUsageFeatureAction; import org.elasticsearch.xpack.spatial.index.mapper.ShapeFieldMapper; import org.elasticsearch.xpack.spatial.index.query.ShapeQueryBuilder; +import org.elasticsearch.xpack.spatial.ingest.CircleProcessor; import java.util.Arrays; import java.util.Collections; @@ -26,7 +29,7 @@ import static java.util.Collections.singletonList; -public class SpatialPlugin extends Plugin implements ActionPlugin, MapperPlugin, SearchPlugin { +public class SpatialPlugin extends Plugin implements ActionPlugin, MapperPlugin, SearchPlugin, IngestPlugin { public SpatialPlugin(Settings settings) { } @@ -49,4 +52,9 @@ public Map getMappers() { public List> getQueries() { return singletonList(new QuerySpec<>(ShapeQueryBuilder.NAME, ShapeQueryBuilder::new, ShapeQueryBuilder::fromXContent)); } + + @Override + public Map getProcessors(Processor.Parameters parameters) { + return Map.of(CircleProcessor.TYPE, new CircleProcessor.Factory()); + } } diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/SpatialUtils.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/SpatialUtils.java new file mode 100644 index 0000000000000..49ace55986027 --- /dev/null +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/SpatialUtils.java @@ -0,0 +1,101 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +package org.elasticsearch.xpack.spatial; + +import org.apache.lucene.util.SloppyMath; +import org.elasticsearch.geometry.Circle; +import org.elasticsearch.geometry.LinearRing; +import org.elasticsearch.geometry.Polygon; +import org.elasticsearch.index.mapper.GeoShapeIndexer; + +/** + * Utility class for storing different helpful re-usable spatial functions + */ +public class SpatialUtils { + + private SpatialUtils() {} + + /** + * Makes an n-gon, centered at the provided circle's center, and each vertex approximately + * {@link Circle#getRadiusMeters()} away from the center. + * + * This does not split the polygon across the date-line. Relies on {@link GeoShapeIndexer} to + * split prepare polygon for indexing. + * + * Adapted from from org.apache.lucene.geo.GeoTestUtil + * */ + public static Polygon createRegularGeoShapePolygon(Circle circle, int gons) { + double[][] result = new double[2][]; + result[0] = new double[gons+1]; + result[1] = new double[gons+1]; + for(int i=0; i circle.getRadiusMeters()) { + // too big + factor -= step; + if (last == 1) { + step /= 2.0; + } + last = -1; + } else if (distanceMeters < circle.getRadiusMeters()) { + // too small + factor += step; + if (last == -1) { + step /= 2.0; + } + last = 1; + } + } + } + + // close poly + result[0][gons] = result[0][0]; + result[1][gons] = result[1][0]; + return new Polygon(new LinearRing(result[0], result[1])); + } + + /** + * Makes an n-gon, centered at the provided circle's center. This assumes + * distance measured in cartesian geometry. + **/ + public static Polygon createRegularShapePolygon(Circle circle, int gons) { + double[][] result = new double[2][]; + result[0] = new double[gons+1]; + result[1] = new double[gons+1]; + for(int i=0; i valueWrapper; + if (obj instanceof Map || obj instanceof String) { + valueWrapper = Map.of("shape", obj); + } else { + throw new IllegalArgumentException("field [" + field + "] must be a WKT Circle or a GeoJSON Circle value"); + } + + MapXContentParser parser = new MapXContentParser(NamedXContentRegistry.EMPTY, + DeprecationHandler.THROW_UNSUPPORTED_OPERATION, valueWrapper, XContentType.JSON); + try { + parser.nextToken(); // START_OBJECT + parser.nextToken(); // "shape" field key + parser.nextToken(); // shape value + GeometryFormat geometryFormat = PARSER.geometryFormat(parser); + Geometry geometry = geometryFormat.fromXContent(parser); + if (ShapeType.CIRCLE.equals(geometry.type())) { + Circle circle = (Circle) geometry; + int numSides = numSides(circle.getRadiusMeters()); + final Geometry polygonizedCircle; + switch (circleShapeFieldType) { + case GEO_SHAPE: + polygonizedCircle = SpatialUtils.createRegularGeoShapePolygon(circle, numSides); + break; + case SHAPE: + polygonizedCircle = SpatialUtils.createRegularShapePolygon(circle, numSides); + break; + default: + throw new IllegalStateException("invalid shape_type [" + circleShapeFieldType + "]"); + } + XContentBuilder newValueBuilder = XContentFactory.jsonBuilder().startObject().field("val"); + geometryFormat.toXContent(polygonizedCircle, newValueBuilder, ToXContent.EMPTY_PARAMS); + newValueBuilder.endObject(); + Map newObj = XContentHelper.convertToMap( + BytesReference.bytes(newValueBuilder), true, XContentType.JSON).v2(); + ingestDocument.setFieldValue(targetField, newObj.get("val")); + } else { + throw new IllegalArgumentException("found [" + geometry.type() + "] instead of circle"); + } + } catch (Exception e) { + throw new IllegalArgumentException("invalid circle definition", e); + } + + return ingestDocument; + } + + @Override + public String getType() { + return TYPE; + } + + String field() { + return field; + } + + String targetField() { + return targetField; + } + + double errorDistance() { + return errorDistance; + } + + CircleShapeFieldType shapeType() { + return circleShapeFieldType; + } + + int numSides(double radiusMeters) { + int val = (int) Math.ceil(2 * Math.PI / Math.acos(1 - errorDistance / radiusMeters)); + return Math.min(MAXIMUM_NUMBER_OF_SIDES, Math.max(MINIMUM_NUMBER_OF_SIDES, val)); + } + + + public static final class Factory implements Processor.Factory { + + public CircleProcessor create(Map registry, String processorTag, Map config) { + String field = ConfigurationUtils.readStringProperty(TYPE, processorTag, config, "field"); + String targetField = ConfigurationUtils.readStringProperty(TYPE, processorTag, config, "target_field", field); + boolean ignoreMissing = ConfigurationUtils.readBooleanProperty(TYPE, processorTag, config, "ignore_missing", false); + double radiusDistance = Math.abs(ConfigurationUtils.readDoubleProperty(TYPE, processorTag, config, "error_distance")); + CircleShapeFieldType circleFieldType = CircleShapeFieldType.parse( + ConfigurationUtils.readStringProperty(TYPE, processorTag, config, "shape_type")); + return new CircleProcessor(processorTag, field, targetField, ignoreMissing, radiusDistance, circleFieldType); + } + } + + enum CircleShapeFieldType { + SHAPE, GEO_SHAPE; + + public static CircleShapeFieldType parse(String value) { + EnumSet validValues = EnumSet.allOf(CircleShapeFieldType.class); + try { + return valueOf(value.toUpperCase(Locale.ROOT)); + } catch (IllegalArgumentException e) { + throw new IllegalArgumentException("illegal [shape_type] value [" + value + "]. valid values are " + + Arrays.toString(validValues.toArray())); + } + } + } +} diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialUtilsTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialUtilsTests.java new file mode 100644 index 0000000000000..df773fbb7c419 --- /dev/null +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialUtilsTests.java @@ -0,0 +1,63 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +package org.elasticsearch.xpack.spatial; + +import org.apache.lucene.util.SloppyMath; +import org.elasticsearch.geometry.Circle; +import org.elasticsearch.geometry.LinearRing; +import org.elasticsearch.geometry.Polygon; +import org.elasticsearch.test.ESTestCase; + +import static org.hamcrest.Matchers.closeTo; +import static org.hamcrest.Matchers.equalTo; + +public class SpatialUtilsTests extends ESTestCase { + + public void testCreateRegularGeoShapePolygon() { + double lon = randomDoubleBetween(-20, 20, true); + double lat = randomDoubleBetween(-20, 20, true); + double radiusMeters = randomDoubleBetween(10, 10000, true); + Circle circle = new Circle(lon, lat, radiusMeters); + int numSides = randomIntBetween(4, 1000); + Polygon polygon = SpatialUtils.createRegularGeoShapePolygon(circle, numSides); + LinearRing outerShell = polygon.getPolygon(); + int numPoints = outerShell.length(); + + // check no holes created + assertThat(polygon.getNumberOfHoles(), equalTo(0)); + // check there are numSides edges + assertThat(numPoints, equalTo(numSides + 1)); + // check that all the points are about a radius away from the center + for (int i = 0; i < numPoints ; i++) { + double actualDistance = SloppyMath + .haversinMeters(circle.getY(), circle.getX(), outerShell.getY(i), outerShell.getX(i)); + assertThat(actualDistance, closeTo(radiusMeters, 0.1)); + } + } + + public void testCreateRegularShapePolygon() { + double x = randomDoubleBetween(-20, 20, true); + double y = randomDoubleBetween(-20, 20, true); + double radius = randomDoubleBetween(10, 10000, true); + Circle circle = new Circle(x, y, radius); + int numSides = randomIntBetween(4, 1000); + Polygon polygon = SpatialUtils.createRegularShapePolygon(circle, numSides); + LinearRing outerShell = polygon.getPolygon(); + int numPoints = outerShell.length(); + + // check no holes created + assertThat(polygon.getNumberOfHoles(), equalTo(0)); + // check there are numSides edges + assertThat(numPoints, equalTo(numSides + 1)); + // check that all the points are about a radius away from the center + for (int i = 0; i < numPoints ; i++) { + double deltaX = circle.getX() - outerShell.getX(i); + double deltaY = circle.getY() - outerShell.getY(i); + double distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY); + assertThat(distance, closeTo(radius, 0.0001)); + } + } +} diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/ingest/CircleProcessorFactoryTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/ingest/CircleProcessorFactoryTests.java new file mode 100644 index 0000000000000..be4544c10305e --- /dev/null +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/ingest/CircleProcessorFactoryTests.java @@ -0,0 +1,94 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +package org.elasticsearch.xpack.spatial.ingest; + +import org.elasticsearch.ElasticsearchParseException; +import org.elasticsearch.test.ESTestCase; + +import org.junit.Before; + +import java.util.HashMap; +import java.util.Map; + +import static org.hamcrest.Matchers.equalTo; + +public class CircleProcessorFactoryTests extends ESTestCase { + + private CircleProcessor.Factory factory; + + @Before + public void init() { + factory = new CircleProcessor.Factory(); + } + + public void testCreateGeoShape() { + Map config = new HashMap<>(); + config.put("field", "field1"); + config.put("error_distance", 0.002); + config.put("shape_type", "geo_shape"); + String processorTag = randomAlphaOfLength(10); + CircleProcessor processor = factory.create(null, processorTag, config); + assertThat(processor.getTag(), equalTo(processorTag)); + assertThat(processor.field(), equalTo("field1")); + assertThat(processor.targetField(), equalTo("field1")); + assertThat(processor.errorDistance(), equalTo(0.002)); + assertThat(processor.shapeType(), equalTo(CircleProcessor.CircleShapeFieldType.GEO_SHAPE)); + } + + public void testCreateShape() { + Map config = new HashMap<>(); + config.put("field", "field1"); + config.put("error_distance", 0.002); + config.put("shape_type", "shape"); + String processorTag = randomAlphaOfLength(10); + CircleProcessor processor = factory.create(null, processorTag, config); + assertThat(processor.getTag(), equalTo(processorTag)); + assertThat(processor.field(), equalTo("field1")); + assertThat(processor.targetField(), equalTo("field1")); + assertThat(processor.errorDistance(), equalTo(0.002)); + assertThat(processor.shapeType(), equalTo(CircleProcessor.CircleShapeFieldType.SHAPE)); + } + + public void testCreateInvalidShapeType() { + Map config = new HashMap<>(); + config.put("field", "field1"); + config.put("error_distance", 0.002); + config.put("shape_type", "invalid"); + String processorTag = randomAlphaOfLength(10); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> factory.create(null, processorTag, config)); + assertThat(e.getMessage(), equalTo("illegal [shape_type] value [invalid]. valid values are [SHAPE, GEO_SHAPE]")); + } + + public void testCreateMissingField() { + Map config = new HashMap<>(); + String processorTag = randomAlphaOfLength(10); + ElasticsearchParseException e = expectThrows(ElasticsearchParseException.class, () -> factory.create(null, processorTag, config)); + assertThat(e.getMessage(), equalTo("[field] required property is missing")); + } + + public void testCreateWithTargetField() { + Map config = new HashMap<>(); + config.put("field", "field1"); + config.put("target_field", "other"); + config.put("error_distance", 0.002); + config.put("shape_type", "geo_shape"); + String processorTag = randomAlphaOfLength(10); + CircleProcessor processor = factory.create(null, processorTag, config); + assertThat(processor.getTag(), equalTo(processorTag)); + assertThat(processor.field(), equalTo("field1")); + assertThat(processor.targetField(), equalTo("other")); + assertThat(processor.errorDistance(), equalTo(0.002)); + assertThat(processor.shapeType(), equalTo(CircleProcessor.CircleShapeFieldType.GEO_SHAPE)); + } + + public void testCreateWithNoErrorDistanceDefined() { + Map config = new HashMap<>(); + config.put("field", "field1"); + String processorTag = randomAlphaOfLength(10); + ElasticsearchParseException e = expectThrows(ElasticsearchParseException.class, () -> factory.create(null, processorTag, config)); + assertThat(e.getMessage(), equalTo("[error_distance] required property is missing")); + } +} diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/ingest/CircleProcessorTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/ingest/CircleProcessorTests.java new file mode 100644 index 0000000000000..55f3e84ed56fe --- /dev/null +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/ingest/CircleProcessorTests.java @@ -0,0 +1,277 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +package org.elasticsearch.xpack.spatial.ingest; + +import org.apache.lucene.document.Document; +import org.apache.lucene.index.IndexReader; +import org.apache.lucene.index.IndexableField; +import org.apache.lucene.index.RandomIndexWriter; +import org.apache.lucene.search.IndexSearcher; +import org.apache.lucene.search.Query; +import org.apache.lucene.store.Directory; +import org.elasticsearch.common.bytes.BytesReference; +import org.elasticsearch.common.collect.Tuple; +import org.elasticsearch.common.geo.GeoJson; +import org.elasticsearch.common.geo.ShapeRelation; +import org.elasticsearch.common.xcontent.ToXContent; +import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.common.xcontent.XContentType; +import org.elasticsearch.geometry.Circle; +import org.elasticsearch.geometry.Geometry; +import org.elasticsearch.geometry.Point; +import org.elasticsearch.geometry.Polygon; +import org.elasticsearch.geometry.utils.StandardValidator; +import org.elasticsearch.geometry.utils.WellKnownText; +import org.elasticsearch.index.mapper.GeoShapeFieldMapper; +import org.elasticsearch.index.mapper.GeoShapeIndexer; +import org.elasticsearch.index.mapper.MappedFieldType; +import org.elasticsearch.index.query.QueryShardContext; +import org.elasticsearch.index.query.VectorGeoShapeQueryProcessor; +import org.elasticsearch.ingest.IngestDocument; +import org.elasticsearch.ingest.RandomDocumentPicks; +import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.xpack.spatial.SpatialUtils; +import org.elasticsearch.xpack.spatial.index.mapper.ShapeFieldMapper; +import org.elasticsearch.xpack.spatial.index.mapper.ShapeIndexer; +import org.elasticsearch.xpack.spatial.index.query.ShapeQueryProcessor; + +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.elasticsearch.ingest.IngestDocumentMatcher.assertIngestDocument; +import static org.elasticsearch.xpack.spatial.ingest.CircleProcessor.CircleShapeFieldType; +import static org.elasticsearch.xpack.spatial.ingest.CircleProcessor.CircleShapeFieldType.GEO_SHAPE; +import static org.elasticsearch.xpack.spatial.ingest.CircleProcessor.CircleShapeFieldType.SHAPE; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.instanceOf; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class CircleProcessorTests extends ESTestCase { + private static final WellKnownText WKT = new WellKnownText(true, new StandardValidator(true)); + + public void testNumSides() { + double radiusDistanceMeters = randomDoubleBetween(0.01, 6371000, true); + CircleShapeFieldType shapeType = randomFrom(SHAPE, GEO_SHAPE); + CircleProcessor processor = new CircleProcessor("tag", "field", "field", false, radiusDistanceMeters, shapeType); + + // radius is same as error distance + assertThat(processor.numSides(radiusDistanceMeters), equalTo(4)); + // radius is much smaller than error distance + assertThat(processor.numSides(0), equalTo(4)); + // radius is much larger than error distance + assertThat(processor.numSides(Math.pow(radiusDistanceMeters, 100)), equalTo(1000)); + // radius is 5 times longer than error distance + assertThat(processor.numSides(5*radiusDistanceMeters), equalTo(10)); + + } + + public void testFieldNotFound() throws Exception { + CircleProcessor processor = new CircleProcessor("tag", "field", "field", false, 10, GEO_SHAPE); + IngestDocument ingestDocument = RandomDocumentPicks.randomIngestDocument(random(), new HashMap<>()); + Exception e = expectThrows(Exception.class, () -> processor.execute(ingestDocument)); + assertThat(e.getMessage(), containsString("not present as part of path [field]")); + } + + public void testFieldNotFoundWithIgnoreMissing() throws Exception { + CircleProcessor processor = new CircleProcessor("tag", "field", "field", true, 10, GEO_SHAPE); + IngestDocument originalIngestDocument = RandomDocumentPicks.randomIngestDocument(random(), new HashMap<>()); + IngestDocument ingestDocument = new IngestDocument(originalIngestDocument); + processor.execute(ingestDocument); + assertIngestDocument(originalIngestDocument, ingestDocument); + } + + public void testNullValue() throws Exception { + CircleProcessor processor = new CircleProcessor("tag", "field", "field", false, 10, GEO_SHAPE); + IngestDocument ingestDocument = RandomDocumentPicks.randomIngestDocument(random(), Collections.singletonMap("field", null)); + Exception e = expectThrows(Exception.class, () -> processor.execute(ingestDocument)); + assertThat(e.getMessage(), equalTo("field [field] is null, cannot process it.")); + } + + public void testNullValueWithIgnoreMissing() throws Exception { + CircleProcessor processor = new CircleProcessor("tag", "field", "field", true, 10, GEO_SHAPE); + IngestDocument originalIngestDocument = RandomDocumentPicks.randomIngestDocument(random(), Collections.singletonMap("field", null)); + IngestDocument ingestDocument = new IngestDocument(originalIngestDocument); + processor.execute(ingestDocument); + assertIngestDocument(originalIngestDocument, ingestDocument); + } + + @SuppressWarnings("unchecked") + public void testJson() throws IOException { + Circle circle = new Circle(101.0, 1.0, 10); + HashMap map = new HashMap<>(); + HashMap circleMap = new HashMap<>(); + circleMap.put("type", "Circle"); + circleMap.put("coordinates", List.of(circle.getLon(), circle.getLat())); + circleMap.put("radius", circle.getRadiusMeters() + "m"); + map.put("field", circleMap); + Geometry expectedPoly = SpatialUtils.createRegularGeoShapePolygon(circle, 4); + assertThat(expectedPoly, instanceOf(Polygon.class)); + IngestDocument ingestDocument = new IngestDocument(map, Collections.emptyMap()); + CircleProcessor processor = new CircleProcessor("tag", "field", "field", false, 10, GEO_SHAPE); + processor.execute(ingestDocument); + Map polyMap = ingestDocument.getFieldValue("field", Map.class); + XContentBuilder builder = XContentFactory.jsonBuilder(); + GeoJson.toXContent(expectedPoly, builder, ToXContent.EMPTY_PARAMS); + Tuple> expected = XContentHelper.convertToMap(BytesReference.bytes(builder), + true, XContentType.JSON); + assertThat(polyMap, equalTo(expected.v2())); + } + + public void testWKT() { + Circle circle = new Circle(101.0, 0.0, 2); + HashMap map = new HashMap<>(); + map.put("field", WKT.toWKT(circle)); + Geometry expectedPoly = SpatialUtils.createRegularGeoShapePolygon(circle, 4); + IngestDocument ingestDocument = new IngestDocument(map, Collections.emptyMap()); + CircleProcessor processor = new CircleProcessor("tag", "field", "field",false, 2, GEO_SHAPE); + processor.execute(ingestDocument); + String polyString = ingestDocument.getFieldValue("field", String.class); + assertThat(polyString, equalTo(WKT.toWKT(expectedPoly))); + } + + public void testInvalidWKT() { + HashMap map = new HashMap<>(); + map.put("field", "invalid"); + IngestDocument ingestDocument = new IngestDocument(map, Collections.emptyMap()); + CircleProcessor processor = new CircleProcessor("tag", "field", "field", false, 10, GEO_SHAPE); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> processor.execute(ingestDocument)); + assertThat(e.getMessage(), equalTo("invalid circle definition")); + map.put("field", "POINT (30 10)"); + e = expectThrows(IllegalArgumentException.class, () -> processor.execute(ingestDocument)); + assertThat(e.getMessage(), equalTo("invalid circle definition")); + } + + public void testMissingField() { + IngestDocument ingestDocument = new IngestDocument(new HashMap<>(), Collections.emptyMap()); + CircleProcessor processor = new CircleProcessor("tag", "field", "field", false, 10, GEO_SHAPE); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> processor.execute(ingestDocument)); + assertThat(e.getMessage(), equalTo("field [field] not present as part of path [field]")); + } + + public void testInvalidType() { + Map field = new HashMap<>(); + field.put("coordinates", List.of(100, 100)); + field.put("radius", "10m"); + Map map = new HashMap<>(); + map.put("field", field); + IngestDocument ingestDocument = new IngestDocument(map, Collections.emptyMap()); + CircleProcessor processor = new CircleProcessor("tag", "field", "field", false, 10, GEO_SHAPE); + + for (Object value : new Object[] { null, 4.0, "not_circle"}) { + field.put("type", value); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> processor.execute(ingestDocument)); + assertThat(e.getMessage(), equalTo("invalid circle definition")); + } + } + + public void testInvalidCoordinates() { + Map field = new HashMap<>(); + field.put("type", "circle"); + field.put("radius", "10m"); + Map map = new HashMap<>(); + map.put("field", field); + IngestDocument ingestDocument = new IngestDocument(map, Collections.emptyMap()); + CircleProcessor processor = new CircleProcessor("tag", "field", "field", false, 10, GEO_SHAPE); + + for (Object value : new Object[] { null, "not_circle"}) { + field.put("coordinates", value); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> processor.execute(ingestDocument)); + assertThat(e.getMessage(), equalTo("invalid circle definition")); + } + } + + public void testInvalidRadius() { + Map field = new HashMap<>(); + field.put("type", "circle"); + field.put("coordinates", List.of(100.0, 1.0)); + Map map = new HashMap<>(); + map.put("field", field); + IngestDocument ingestDocument = new IngestDocument(map, Collections.emptyMap()); + CircleProcessor processor = new CircleProcessor("tag", "field", "field", false, 10, GEO_SHAPE); + + for (Object value : new Object[] { null, "NotNumber", "10.0fs"}) { + field.put("radius", value); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> processor.execute(ingestDocument)); + assertThat(e.getMessage(), equalTo("invalid circle definition")); + } + } + + public void testGeoShapeQueryAcrossDateline() throws IOException { + String fieldName = "circle"; + Circle circle = new Circle(179.999746, 67.1726, randomDoubleBetween(1000, 300000, true)); + int numSides = randomIntBetween(4, 1000); + Geometry geometry = SpatialUtils.createRegularGeoShapePolygon(circle, numSides); + + MappedFieldType shapeType = new GeoShapeFieldMapper.GeoShapeFieldType(); + shapeType.setHasDocValues(false); + shapeType.setName(fieldName); + + VectorGeoShapeQueryProcessor processor = new VectorGeoShapeQueryProcessor(); + QueryShardContext mockedContext = mock(QueryShardContext.class); + when(mockedContext.fieldMapper(any())).thenReturn(shapeType); + Query sameShapeQuery = processor.process(geometry, fieldName, ShapeRelation.INTERSECTS, mockedContext); + Query pointOnDatelineQuery = processor.process(new Point(180, circle.getLat()), fieldName, + ShapeRelation.INTERSECTS, mockedContext); + + try (Directory dir = newDirectory(); RandomIndexWriter w = new RandomIndexWriter(random(), dir)) { + Document doc = new Document(); + GeoShapeIndexer indexer = new GeoShapeIndexer(true, fieldName); + Geometry normalized = indexer.prepareForIndexing(geometry); + for (IndexableField field : indexer.indexShape(null, normalized)) { + doc.add(field); + } + w.addDocument(doc); + + try (IndexReader reader = w.getReader()) { + IndexSearcher searcher = new IndexSearcher(reader); + assertThat(searcher.search(sameShapeQuery, 1).totalHits.value, equalTo(1L)); + assertThat(searcher.search(pointOnDatelineQuery, 1).totalHits.value, equalTo(1L)); + } + } + } + + public void testShapeQuery() throws IOException { + String fieldName = "circle"; + Circle circle = new Circle(0, 0, 10); + int numSides = randomIntBetween(4, 1000); + Geometry geometry = SpatialUtils.createRegularShapePolygon(circle, numSides); + + MappedFieldType shapeType = new ShapeFieldMapper.ShapeFieldType(); + shapeType.setHasDocValues(false); + shapeType.setName(fieldName); + + ShapeQueryProcessor processor = new ShapeQueryProcessor(); + QueryShardContext mockedContext = mock(QueryShardContext.class); + when(mockedContext.fieldMapper(any())).thenReturn(shapeType); + Query sameShapeQuery = processor.process(geometry, fieldName, ShapeRelation.INTERSECTS, mockedContext); + Query centerPointQuery = processor.process(new Point(circle.getLon(), circle.getLat()), fieldName, + ShapeRelation.INTERSECTS, mockedContext); + + try (Directory dir = newDirectory(); RandomIndexWriter w = new RandomIndexWriter(random(), dir)) { + Document doc = new Document(); + ShapeIndexer indexer = new ShapeIndexer(fieldName); + Geometry normalized = indexer.prepareForIndexing(geometry); + for (IndexableField field : indexer.indexShape(null, normalized)) { + doc.add(field); + } + w.addDocument(doc); + + try (IndexReader reader = w.getReader()) { + IndexSearcher searcher = new IndexSearcher(reader); + assertThat(searcher.search(sameShapeQuery, 1).totalHits.value, equalTo(1L)); + assertThat(searcher.search(centerPointQuery, 1).totalHits.value, equalTo(1L)); + } + } + } +}