From 1dcaee9f724717e79361078c2b69c63634a42fc6 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Wed, 18 Dec 2019 14:48:17 -0500 Subject: [PATCH 1/2] Geo: Switch generated WKT to upper case (#50285) Switches generated WKT to upper case to conform to the standard recommendation. Closes #49568 --- docs/reference/ingest/processors/circle.asciidoc | 2 +- .../org/elasticsearch/common/geo/GeoJson.java | 16 ++++++++-------- .../common/geo/GeometryParserTests.java | 4 ++-- .../index/query/GeoShapeQueryBuilderTests.java | 2 +- .../search/geo/GeoShapeQueryTests.java | 2 +- .../xpack/ml/extractor/GeoShapeFieldTests.java | 2 +- .../index/query/ShapeQueryBuilderTests.java | 2 +- .../xpack/spatial/search/ShapeQueryTests.java | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/reference/ingest/processors/circle.asciidoc b/docs/reference/ingest/processors/circle.asciidoc index 300d7763fe634..aa350621dfbbb 100644 --- a/docs/reference/ingest/processors/circle.asciidoc +++ b/docs/reference/ingest/processors/circle.asciidoc @@ -128,7 +128,7 @@ The response from the above index request: [30.000365257263184, 10.0] ] ], - "type": "polygon" + "type": "POLYGON" } } } diff --git a/server/src/main/java/org/elasticsearch/common/geo/GeoJson.java b/server/src/main/java/org/elasticsearch/common/geo/GeoJson.java index 0a1454a868738..aa49a06c0b7a4 100644 --- a/server/src/main/java/org/elasticsearch/common/geo/GeoJson.java +++ b/server/src/main/java/org/elasticsearch/common/geo/GeoJson.java @@ -382,7 +382,7 @@ public static String getGeoJsonName(Geometry geometry) { return geometry.visit(new GeometryVisitor<>() { @Override public String visit(Circle circle) { - return "circle"; + return "CIRCLE"; } @Override @@ -392,7 +392,7 @@ public String visit(GeometryCollection collection) { @Override public String visit(Line line) { - return "linestring"; + return "LINESTRING"; } @Override @@ -402,32 +402,32 @@ public String visit(LinearRing ring) { @Override public String visit(MultiLine multiLine) { - return "multilinestring"; + return "MULTILINESTRING"; } @Override public String visit(MultiPoint multiPoint) { - return "multipoint"; + return "MULTIPOINT"; } @Override public String visit(MultiPolygon multiPolygon) { - return "multipolygon"; + return "MULTIPOLYGON"; } @Override public String visit(Point point) { - return "point"; + return "POINT"; } @Override public String visit(Polygon polygon) { - return "polygon"; + return "POLYGON"; } @Override public String visit(Rectangle rectangle) { - return "envelope"; + return "ENVELOPE"; } }); } diff --git a/server/src/test/java/org/elasticsearch/common/geo/GeometryParserTests.java b/server/src/test/java/org/elasticsearch/common/geo/GeometryParserTests.java index df4b47f23689f..ef7f17d06d9a5 100644 --- a/server/src/test/java/org/elasticsearch/common/geo/GeometryParserTests.java +++ b/server/src/test/java/org/elasticsearch/common/geo/GeometryParserTests.java @@ -51,7 +51,7 @@ public void testGeoJsonParsing() throws Exception { assertEquals(new Point(100, 0), format.fromXContent(parser)); XContentBuilder newGeoJson = XContentFactory.jsonBuilder(); format.toXContent(new Point(100, 10), newGeoJson, ToXContent.EMPTY_PARAMS); - assertEquals("{\"type\":\"point\",\"coordinates\":[100.0,10.0]}", Strings.toString(newGeoJson)); + assertEquals("{\"type\":\"POINT\",\"coordinates\":[100.0,10.0]}", Strings.toString(newGeoJson)); } XContentBuilder pointGeoJsonWithZ = XContentFactory.jsonBuilder() @@ -148,7 +148,7 @@ public void testNullParsing() throws Exception { // if we serialize non-null value - it should be serialized as geojson format.toXContent(new Point(100, 10), newGeoJson, ToXContent.EMPTY_PARAMS); newGeoJson.endObject(); - assertEquals("{\"val\":{\"type\":\"point\",\"coordinates\":[100.0,10.0]}}", Strings.toString(newGeoJson)); + assertEquals("{\"val\":{\"type\":\"POINT\",\"coordinates\":[100.0,10.0]}}", Strings.toString(newGeoJson)); newGeoJson = XContentFactory.jsonBuilder().startObject().field("val"); format.toXContent(null, newGeoJson, ToXContent.EMPTY_PARAMS); diff --git a/server/src/test/java/org/elasticsearch/index/query/GeoShapeQueryBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/GeoShapeQueryBuilderTests.java index 5eb89ccd4d454..9de614057676b 100644 --- a/server/src/test/java/org/elasticsearch/index/query/GeoShapeQueryBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/GeoShapeQueryBuilderTests.java @@ -204,7 +204,7 @@ public void testFromJson() throws IOException { " \"geo_shape\" : {\n" + " \"location\" : {\n" + " \"shape\" : {\n" + - " \"type\" : \"envelope\",\n" + + " \"type\" : \"ENVELOPE\",\n" + " \"coordinates\" : [ [ 13.0, 53.0 ], [ 14.0, 52.0 ] ]\n" + " },\n" + " \"relation\" : \"intersects\"\n" + diff --git a/server/src/test/java/org/elasticsearch/search/geo/GeoShapeQueryTests.java b/server/src/test/java/org/elasticsearch/search/geo/GeoShapeQueryTests.java index 8ed913242ebda..956c7c9541a50 100644 --- a/server/src/test/java/org/elasticsearch/search/geo/GeoShapeQueryTests.java +++ b/server/src/test/java/org/elasticsearch/search/geo/GeoShapeQueryTests.java @@ -254,7 +254,7 @@ public void testShapeFetchingPath() throws Exception { createIndex("shapes"); client().admin().indices().prepareCreate("test").addMapping("_doc", "location", "type=geo_shape").get(); - String location = "\"location\" : {\"type\":\"polygon\", \"coordinates\":[[[-10,-10],[10,-10],[10,10],[-10,10],[-10,-10]]]}"; + String location = "\"location\" : {\"type\":\"POLYGON\", \"coordinates\":[[[-10,-10],[10,-10],[10,10],[-10,10],[-10,-10]]]}"; client().prepareIndex("shapes").setId("1") .setSource( diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/extractor/GeoShapeFieldTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/extractor/GeoShapeFieldTests.java index 79ac9849375cc..a77a17940a2b2 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/extractor/GeoShapeFieldTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/extractor/GeoShapeFieldTests.java @@ -22,7 +22,7 @@ public void testObjectFormat() { String[] expected = new String[] {lat + "," + lon}; SearchHit hit = new SearchHitBuilder(42) - .setSource("{\"geo\":{\"type\":\"point\", \"coordinates\": [" + lon + ", " + lat + "]}}") + .setSource("{\"geo\":{\"type\":\"POINT\", \"coordinates\": [" + lon + ", " + lat + "]}}") .build(); ExtractedField geo = new GeoShapeField("geo"); diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderTests.java index 2e9cd2db3a55d..8795397cb7d36 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderTests.java @@ -179,7 +179,7 @@ public void testFromJson() throws IOException { " }\n" + "}"; ShapeQueryBuilder parsed = (ShapeQueryBuilder) parseQuery(json); - checkGeneratedJson(json, parsed); + checkGeneratedJson(json.replaceAll("envelope", "ENVELOPE"), parsed); assertEquals(json, 42.0, parsed.boost(), 0.0001); } diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/search/ShapeQueryTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/search/ShapeQueryTests.java index 1d11c54b69e47..4bdaddb0d1be3 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/search/ShapeQueryTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/search/ShapeQueryTests.java @@ -111,7 +111,7 @@ public void testShapeFetchingPath() throws Exception { createIndex(indexName); client().admin().indices().prepareCreate(searchIndex).addMapping("type", "location", "type=shape").get(); - String location = "\"location\" : {\"type\":\"polygon\", \"coordinates\":[[[-10,-10],[10,-10],[10,10],[-10,10],[-10,-10]]]}"; + String location = "\"location\" : {\"type\":\"POLYGON\", \"coordinates\":[[[-10,-10],[10,-10],[10,10],[-10,10],[-10,-10]]]}"; client().prepareIndex(indexName).setId("1") .setSource( From 08f60e189fd7001c95b07399eef08f375d4ce168 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Thu, 19 Dec 2019 16:04:16 -0500 Subject: [PATCH 2/2] Fix case conversion --- .../ingest/processors/circle.asciidoc | 2 +- .../org/elasticsearch/common/geo/GeoJson.java | 18 +++++++++--------- .../common/geo/GeometryParserTests.java | 4 ++-- .../index/query/GeoShapeQueryBuilderTests.java | 2 +- .../search/geo/GeoShapeQueryTests.java | 2 +- .../xpack/ml/extractor/GeoShapeFieldTests.java | 2 +- .../index/query/ShapeQueryBuilderTests.java | 2 +- .../xpack/spatial/search/ShapeQueryTests.java | 2 +- 8 files changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/reference/ingest/processors/circle.asciidoc b/docs/reference/ingest/processors/circle.asciidoc index aa350621dfbbb..a8a6bda02f8e2 100644 --- a/docs/reference/ingest/processors/circle.asciidoc +++ b/docs/reference/ingest/processors/circle.asciidoc @@ -128,7 +128,7 @@ The response from the above index request: [30.000365257263184, 10.0] ] ], - "type": "POLYGON" + "type": "Polygon" } } } diff --git a/server/src/main/java/org/elasticsearch/common/geo/GeoJson.java b/server/src/main/java/org/elasticsearch/common/geo/GeoJson.java index aa49a06c0b7a4..5eb327588fb80 100644 --- a/server/src/main/java/org/elasticsearch/common/geo/GeoJson.java +++ b/server/src/main/java/org/elasticsearch/common/geo/GeoJson.java @@ -382,17 +382,17 @@ public static String getGeoJsonName(Geometry geometry) { return geometry.visit(new GeometryVisitor<>() { @Override public String visit(Circle circle) { - return "CIRCLE"; + return "Circle"; } @Override public String visit(GeometryCollection collection) { - return "geometrycollection"; + return "GeometryCollection"; } @Override public String visit(Line line) { - return "LINESTRING"; + return "LineString"; } @Override @@ -402,32 +402,32 @@ public String visit(LinearRing ring) { @Override public String visit(MultiLine multiLine) { - return "MULTILINESTRING"; + return "MultiLineString"; } @Override public String visit(MultiPoint multiPoint) { - return "MULTIPOINT"; + return "MultiPoint"; } @Override public String visit(MultiPolygon multiPolygon) { - return "MULTIPOLYGON"; + return "MultiPolygon"; } @Override public String visit(Point point) { - return "POINT"; + return "Point"; } @Override public String visit(Polygon polygon) { - return "POLYGON"; + return "Polygon"; } @Override public String visit(Rectangle rectangle) { - return "ENVELOPE"; + return "Envelope"; } }); } diff --git a/server/src/test/java/org/elasticsearch/common/geo/GeometryParserTests.java b/server/src/test/java/org/elasticsearch/common/geo/GeometryParserTests.java index ef7f17d06d9a5..4c53d40fb75db 100644 --- a/server/src/test/java/org/elasticsearch/common/geo/GeometryParserTests.java +++ b/server/src/test/java/org/elasticsearch/common/geo/GeometryParserTests.java @@ -51,7 +51,7 @@ public void testGeoJsonParsing() throws Exception { assertEquals(new Point(100, 0), format.fromXContent(parser)); XContentBuilder newGeoJson = XContentFactory.jsonBuilder(); format.toXContent(new Point(100, 10), newGeoJson, ToXContent.EMPTY_PARAMS); - assertEquals("{\"type\":\"POINT\",\"coordinates\":[100.0,10.0]}", Strings.toString(newGeoJson)); + assertEquals("{\"type\":\"Point\",\"coordinates\":[100.0,10.0]}", Strings.toString(newGeoJson)); } XContentBuilder pointGeoJsonWithZ = XContentFactory.jsonBuilder() @@ -148,7 +148,7 @@ public void testNullParsing() throws Exception { // if we serialize non-null value - it should be serialized as geojson format.toXContent(new Point(100, 10), newGeoJson, ToXContent.EMPTY_PARAMS); newGeoJson.endObject(); - assertEquals("{\"val\":{\"type\":\"POINT\",\"coordinates\":[100.0,10.0]}}", Strings.toString(newGeoJson)); + assertEquals("{\"val\":{\"type\":\"Point\",\"coordinates\":[100.0,10.0]}}", Strings.toString(newGeoJson)); newGeoJson = XContentFactory.jsonBuilder().startObject().field("val"); format.toXContent(null, newGeoJson, ToXContent.EMPTY_PARAMS); diff --git a/server/src/test/java/org/elasticsearch/index/query/GeoShapeQueryBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/GeoShapeQueryBuilderTests.java index 9de614057676b..8020083d106b6 100644 --- a/server/src/test/java/org/elasticsearch/index/query/GeoShapeQueryBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/GeoShapeQueryBuilderTests.java @@ -204,7 +204,7 @@ public void testFromJson() throws IOException { " \"geo_shape\" : {\n" + " \"location\" : {\n" + " \"shape\" : {\n" + - " \"type\" : \"ENVELOPE\",\n" + + " \"type\" : \"Envelope\",\n" + " \"coordinates\" : [ [ 13.0, 53.0 ], [ 14.0, 52.0 ] ]\n" + " },\n" + " \"relation\" : \"intersects\"\n" + diff --git a/server/src/test/java/org/elasticsearch/search/geo/GeoShapeQueryTests.java b/server/src/test/java/org/elasticsearch/search/geo/GeoShapeQueryTests.java index 956c7c9541a50..8ed913242ebda 100644 --- a/server/src/test/java/org/elasticsearch/search/geo/GeoShapeQueryTests.java +++ b/server/src/test/java/org/elasticsearch/search/geo/GeoShapeQueryTests.java @@ -254,7 +254,7 @@ public void testShapeFetchingPath() throws Exception { createIndex("shapes"); client().admin().indices().prepareCreate("test").addMapping("_doc", "location", "type=geo_shape").get(); - String location = "\"location\" : {\"type\":\"POLYGON\", \"coordinates\":[[[-10,-10],[10,-10],[10,10],[-10,10],[-10,-10]]]}"; + String location = "\"location\" : {\"type\":\"polygon\", \"coordinates\":[[[-10,-10],[10,-10],[10,10],[-10,10],[-10,-10]]]}"; client().prepareIndex("shapes").setId("1") .setSource( diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/extractor/GeoShapeFieldTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/extractor/GeoShapeFieldTests.java index a77a17940a2b2..79ac9849375cc 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/extractor/GeoShapeFieldTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/extractor/GeoShapeFieldTests.java @@ -22,7 +22,7 @@ public void testObjectFormat() { String[] expected = new String[] {lat + "," + lon}; SearchHit hit = new SearchHitBuilder(42) - .setSource("{\"geo\":{\"type\":\"POINT\", \"coordinates\": [" + lon + ", " + lat + "]}}") + .setSource("{\"geo\":{\"type\":\"point\", \"coordinates\": [" + lon + ", " + lat + "]}}") .build(); ExtractedField geo = new GeoShapeField("geo"); diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderTests.java index 8795397cb7d36..fb0d7fbbe7557 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderTests.java @@ -179,7 +179,7 @@ public void testFromJson() throws IOException { " }\n" + "}"; ShapeQueryBuilder parsed = (ShapeQueryBuilder) parseQuery(json); - checkGeneratedJson(json.replaceAll("envelope", "ENVELOPE"), parsed); + checkGeneratedJson(json.replaceAll("envelope", "Envelope"), parsed); assertEquals(json, 42.0, parsed.boost(), 0.0001); } diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/search/ShapeQueryTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/search/ShapeQueryTests.java index 4bdaddb0d1be3..1d11c54b69e47 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/search/ShapeQueryTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/search/ShapeQueryTests.java @@ -111,7 +111,7 @@ public void testShapeFetchingPath() throws Exception { createIndex(indexName); client().admin().indices().prepareCreate(searchIndex).addMapping("type", "location", "type=shape").get(); - String location = "\"location\" : {\"type\":\"POLYGON\", \"coordinates\":[[[-10,-10],[10,-10],[10,10],[-10,10],[-10,-10]]]}"; + String location = "\"location\" : {\"type\":\"polygon\", \"coordinates\":[[[-10,-10],[10,-10],[10,10],[-10,10],[-10,-10]]]}"; client().prepareIndex(indexName).setId("1") .setSource(