diff --git a/docs/reference/query-dsl/geo-bounding-box-query.asciidoc b/docs/reference/query-dsl/geo-bounding-box-query.asciidoc index a1b427acf2718..818525c7e7399 100644 --- a/docs/reference/query-dsl/geo-bounding-box-query.asciidoc +++ b/docs/reference/query-dsl/geo-bounding-box-query.asciidoc @@ -206,7 +206,7 @@ GET /_search // CONSOLE [float] -===== Geohash +===== Geohash as corners [source,js] -------------------------------------------------- @@ -231,6 +231,31 @@ GET /_search -------------------------------------------------- // CONSOLE +[float] +===== Geohash as a bounding box + +[source,js] +-------------------------------------------------- +GET /_search +{ + "query": { + "bool" : { + "must" : { + "match_all" : {} + }, + "filter" : { + "geo_bounding_box" : { + "pin.location" : { + "geohash" : "dr5r" + } + } + } + } + } +} +-------------------------------------------------- +// CONSOLE + [float] ==== Vertices diff --git a/server/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxQueryBuilder.java b/server/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxQueryBuilder.java index 3fea896342270..d29c6d4511bdf 100644 --- a/server/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxQueryBuilder.java +++ b/server/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxQueryBuilder.java @@ -75,6 +75,7 @@ public class GeoBoundingBoxQueryBuilder extends AbstractQueryBuilder parseQuery(jsonGeohashAndWkt)); + assertThat(e1.getMessage(), containsString("Conflicting definition found using well-known text and geohash")); + + String jsonGeohashAndTopLeft= + "{\n" + + " \"geo_bounding_box\" : {\n" + + " \"pin.location\" : {\n" + + " \"geohash\" : \"dr\"," + + " \"top_left\" : [ -78.75, 45.0 ]\n" + + " },\n" + + " \"validation_method\" : \"STRICT\",\n" + + " \"type\" : \"MEMORY\",\n" + + " \"ignore_unmapped\" : false,\n" + + " \"boost\" : 1.0\n" + + " }\n" + + "}"; + + ElasticsearchParseException e2 = expectThrows(ElasticsearchParseException.class, () -> parseQuery(jsonGeohashAndTopLeft)); + assertThat(e2.getMessage(), containsString("Conflicting definition found using geohash and explicit corners")); + } + @Override public void testMustRewrite() throws IOException { assumeTrue("test runs only when at least a type is registered", getCurrentTypes().length > 0);