Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Geo shape query vs geo point #52382

Merged
merged 109 commits into from
Mar 18, 2020
Merged
Show file tree
Hide file tree
Changes from 106 commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
a5f09fb
WIP subclassing GeoShapeQueryTests.java
Nov 15, 2019
478cee7
WIP subclassing GeoShapeQueryTests.java
Nov 18, 2019
ebd06e4
WIP subclassing GeoShapeQueryTests.java
Nov 19, 2019
5d3c189
WIP writing GeoPointShapeQueryTests.java
Nov 19, 2019
ab60f06
Added Failing Test testIndexPointsFilterRectangle
Nov 20, 2019
c22308f
Merge branch 'master' into geo-shape-query-vs-geo-point
Nov 20, 2019
443441c
Merge branch 'master' into geo-shape-query-vs-geo-point
Nov 21, 2019
24b9535
permit GeoShapeQueryBuilder to accept a geo_point -> class_cast_excep…
Nov 23, 2019
59c1bfc
added @Override protected XContentBuilder createMapping
Dec 2, 2019
192ad15
merged upstream including 418edc6 types fixes
Jan 7, 2020
ddc9e8c
repeat refactor post type removal and remove remaining types from Geo…
Jan 7, 2020
0f3bd91
tidy GeoPointShapeQueryTests.java
Jan 7, 2020
6d68e7f
interim checkin, still failing tests
Jan 8, 2020
2d880c2
GeoShapeQueryTests.java passing tests
Jan 8, 2020
e275f3e
GeoShapeQueryTests.java extends GeoQueryTests
Jan 8, 2020
316c7b1
refactored + tests passing
Jan 8, 2020
e7e5e7b
refactored + tests passing
Jan 8, 2020
d7f2218
reset GeoShapeQueryBuilder.java for future PR
Jan 8, 2020
e54c867
improved refactoring see: https://github.com/elastic/elasticsearch/pu…
Jan 9, 2020
9025578
refactor
Jan 14, 2020
13e8b00
Merge branch 'djptek-geo-shape-query-vs-geo-point'
Jan 24, 2020
83504d1
merged refactor changes to upstream
Jan 24, 2020
4d3676b
rectified Checkstyle rule violations
Jan 24, 2020
322db3f
merge to upstream
Jan 31, 2020
fa64b52
add @iverase patch with thanks
Feb 12, 2020
ca4ef1a
tidied patch, added geo_shape vs circle test and implmented visitor
Feb 12, 2020
4683d5b
added tests, all OK EXCEPT testQueryLinearRing()
Feb 13, 2020
09ac818
LinearRing test OK
Feb 14, 2020
364d9f8
document geo_shape vs geo_point
Feb 14, 2020
d77f793
fix unused imports
Feb 14, 2020
cb0a526
Merge branch 'master' of https://github.com/djptek/elasticsearch
Feb 14, 2020
77c8664
fixed marge
Feb 14, 2020
3577ca2
fix imports
Feb 14, 2020
5bb9f9a
fix docs reference
Feb 14, 2020
0753166
fix unused import
Feb 14, 2020
a81c7c1
fix failing test 1/2
Feb 15, 2020
0d2f25b
Update GeoShapeIndexer.java
djptek Feb 17, 2020
8fe901a
removed CIRCLE
Feb 17, 2020
71617b5
List validContentTypes() populated and tests updated
Feb 17, 2020
3706e85
removal of String queryFieldType()
Feb 17, 2020
dc0f943
fix testIgnoreUnmapped()
Feb 17, 2020
73ca89d
back out docs changes and synch xpack
Feb 17, 2020
f1569db
fix xpack compile issue
Feb 18, 2020
8094a4a
Merge remote-tracking branch 'upstream/master'
Feb 19, 2020
df87673
merge 30316d6d6409a359431d47094c497c482118a226
Feb 19, 2020
22a6b2f
remove unused imports
Feb 19, 2020
322290a
rollback geo-shape-query.asciidoc
Feb 19, 2020
b278935
remove unused import
Feb 19, 2020
43be178
restore xpack...ShapeQueryBuilder.validContentTypes to shape
Feb 19, 2020
8d8ac10
remove unused imports
Feb 19, 2020
ca12212
restore missing import
Feb 19, 2020
f555309
include geo_point in geo-shape-query docs
Feb 20, 2020
13afa49
Merge branch 'master' into geo-shape-query-vs-geo-point
djptek Feb 20, 2020
eaaaba8
merge upstream
Feb 21, 2020
50550b4
update tests
Feb 21, 2020
eff1b6f
Merge branch 'master' into geo-shape-query-vs-geo-point
Feb 21, 2020
1c68db6
remove the GeometryIndexer and call the Decomposers on the visitor
Feb 26, 2020
6ce856b
fix imports
Feb 26, 2020
8b713a1
added tests testPolygonSpanningDateline() testMultiPolygonSpanningDat…
Feb 26, 2020
83bdc93
added testRectangleSpanningDateline
Feb 26, 2020
798a16f
change != to == false
Feb 27, 2020
fc60978
commented out Decompose, tests passing, hardened tests, still passing
Feb 27, 2020
783276a
refactor tests, testMultiPolygonSpanningDateline() now failing
Feb 28, 2020
f084f72
ShapeQueryBuilder change ! to == false
Feb 28, 2020
cb44b3b
tests still failing
Feb 28, 2020
57faaed
working, pending refactor
Feb 28, 2020
9b9a33e
fixed imports etc.
Feb 28, 2020
99be3be
Merge remote-tracking branch 'upstream/master'
Feb 29, 2020
b98a6a9
Merge branch 'master' into geo-shape-query-vs-geo-point
Feb 29, 2020
ed00003
use single collector
Feb 29, 2020
830635f
use single collector
Feb 29, 2020
0241753
use GeoPolygonDecomposer.decomposeMultiPolygon
Feb 29, 2020
5807864
add GeoQueryTests.testIndexPointsIndexedRectangle()
Mar 2, 2020
8ed8bfe
clean stray comment
Mar 2, 2020
9391222
add docValues optimisation to visit(MultiPolygon multiPolygon) and vi…
Mar 2, 2020
e21dcc8
clarify imports to distinguish Polygon vs Lucene Polygon
Mar 2, 2020
27f4101
Merge remote-tracking branch 'upstream/master'
Mar 2, 2020
6dfbc18
Merge branch 'master' into geo-shape-query-vs-geo-point
Mar 2, 2020
0932589
added dvQuery to visit(Rectangle) visit(Circle)
Mar 2, 2020
2911156
Merge remote-tracking branch 'upstream/master'
Mar 2, 2020
110f58f
Merge branch 'master' into geo-shape-query-vs-geo-point
Mar 2, 2020
1ddb6e9
refactor to add GeoShapeQueryBuilder tests specific to geo_shape, geo…
Mar 9, 2020
ab708cf
Merge remote-tracking branch 'upstream/master'
Mar 9, 2020
0803f87
WIP refactor GeoShapeQueryBuilderTests
Mar 9, 2020
d64b9dd
added test overrides in GeoShapeQueryBuilderGeoPointTests
Mar 10, 2020
253c322
Merge remote-tracking branch 'upstream/master'
Mar 10, 2020
e25dc29
Merge branch 'master' into geo-shape-query-vs-geo-point
Mar 10, 2020
06f755d
Merge remote-tracking branch 'upstream/master'
Mar 11, 2020
f88c8df
Merge branch 'master' into geo-shape-query-vs-geo-point
Mar 11, 2020
cebf279
override doCreateTestQueryBuilder() in GeoShapeQueryBuilderTests
Mar 11, 2020
fdc8379
refactor make doCreateTestQueryBuilder(boolean indexedShape) abstract
Mar 11, 2020
3db5f95
added @iverase patch
Mar 13, 2020
7ca6965
fix style violations
Mar 13, 2020
e1f1a4b
fix classname typo
Mar 13, 2020
bf79c77
Merge remote-tracking branch 'upstream/master'
Mar 13, 2020
51dcb70
Merge branch 'master' into geo-shape-query-vs-geo-point
Mar 13, 2020
4251742
remove copycat methods from child class
Mar 13, 2020
bd9cb07
added AbstractSearchableGeometryFieldType as separate file
Mar 13, 2020
7dcfa6e
add Licenseheaders
Mar 14, 2020
3b49c3d
Merge remote-tracking branch 'upstream/master'
Mar 14, 2020
6358862
Merge branch 'master' into geo-shape-query-vs-geo-point
Mar 14, 2020
01548bb
move AbstractGeometryFieldMapper.QueryProcessor to AbstractSearchable…
Mar 14, 2020
1acc0f0
use static to avoid (re-)creating lists
Mar 17, 2020
15f8497
add reference to shapes NOT supported for geo_shape query vs geo_poin…
Mar 17, 2020
833ac0d
Update x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/sp…
djptek Mar 17, 2020
2facb66
+; ;-)
Mar 17, 2020
5df014a
merge upstream
Mar 17, 2020
8f3f90b
Merge branch 'master' into geo-shape-query-vs-geo-point
Mar 17, 2020
e986c92
Merge branch 'master' into geo-shape-query-vs-geo-point
elasticmachine Mar 17, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions docs/reference/query-dsl/geo-queries.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@ Finds documents with geo-points within the specified distance of a central point
Find documents with geo-points within the specified polygon.

<<query-dsl-geo-shape-query,`geo_shape`>> query::
Finds documents with geo-shapes which either intersect, are contained by, or do not intersect with the specified
geo-shape.

Finds documents with:
* `geo-shapes` which either intersect, are contained by, or do not intersect
with the specified geo-shape
* `geo-points` which intersect the specified
geo-shape

include::geo-bounding-box-query.asciidoc[]

Expand Down
20 changes: 17 additions & 3 deletions docs/reference/query-dsl/geo-shape-query.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
<titleabbrev>Geo-shape</titleabbrev>
++++

Filter documents indexed using the `geo_shape` type.
Filter documents indexed using the `geo_shape` or `geo_point` type.
nknize marked this conversation as resolved.
Show resolved Hide resolved

Requires the <<geo-shape,`geo_shape` Mapping>>.
Requires the <<geo-shape,`geo_shape` Mapping>> or the <<geo-point,`geo_point` Mapping>>.

The `geo_shape` query uses the same grid square representation as the
`geo_shape` mapping to find documents that have a shape that intersects
Expand Down Expand Up @@ -142,7 +142,7 @@ GET /example/_search
The <<spatial-strategy, geo_shape strategy>> mapping parameter determines
which spatial relation operators may be used at search time.

The following is a complete list of spatial relation operators available:
The following is a complete list of spatial relation operators available when searching a field of type `geo_shape`:

* `INTERSECTS` - (default) Return all documents whose `geo_shape` field
intersects the query geometry.
Expand All @@ -153,6 +153,11 @@ is within the query geometry.
* `CONTAINS` - Return all documents whose `geo_shape` field
contains the query geometry.

When searching a field of type `geo_point` there is a single supported spatial relation operator:

* `INTERSECTS` - (default) Return all documents whose `geo_point` field
intersects the query geometry.

[float]
==== Ignore Unmapped

Expand All @@ -162,6 +167,15 @@ querying multiple indexes which might have different mappings. When set to
`false` (the default value) the query will throw an exception if the field
is not mapped.

==== Shape Types supported for Geo-Point

When searching a field of type `geo_point` the following shape types are not supported:

* `POINT`
* `LINE`
* `MULTIPOINT`
* `MULTILINE`

==== Notes
Geo-shape queries on geo-shapes implemented with <<prefix-trees, `PrefixTrees`>> will not be executed if
<<query-dsl-allow-expensive-queries, `search.allow_expensive_queries`>> is set to false.
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,6 @@ public <T, E extends Exception> T visit(GeometryVisitor<T, E> visitor) throws E
public String toString() {
return "linearring(x=" + Arrays.toString(getX()) +
", y=" + Arrays.toString(getY()) +
(hasZ() ? ", z=" + Arrays.toString(getZ()) : "");
(hasZ() ? ", z=" + Arrays.toString(getZ()) : "") + ")";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,13 @@
import org.elasticsearch.Version;
import org.elasticsearch.common.Explicit;
import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.geo.ShapeRelation;
import org.elasticsearch.common.geo.SpatialStrategy;
import org.elasticsearch.common.geo.builders.ShapeBuilder;
import org.elasticsearch.common.geo.builders.ShapeBuilder.Orientation;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.xcontent.LoggingDeprecationHandler;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.support.XContentMapValues;
import org.elasticsearch.geometry.Geometry;
import org.elasticsearch.index.mapper.LegacyGeoShapeFieldMapper.DeprecatedParameters;
import org.elasticsearch.index.query.QueryShardContext;
import org.elasticsearch.index.query.QueryShardException;
Expand Down Expand Up @@ -91,19 +88,6 @@ public interface Parser<Parsed> {

}

/**
* interface representing a query builder that generates a query from the given shape
*/
public interface QueryProcessor {
Query process(Geometry shape, String fieldName, ShapeRelation relation, QueryShardContext context);

@Deprecated
default Query process(Geometry shape, String fieldName, SpatialStrategy strategy, ShapeRelation relation,
QueryShardContext context) {
return process(shape, fieldName, relation, context);
}
}

public abstract static class Builder<T extends Builder, Y extends AbstractGeometryFieldMapper>
extends FieldMapper.Builder<T, Y> {
protected Boolean coerce;
Expand Down Expand Up @@ -272,14 +256,14 @@ public Mapper.Builder parse(String name, Map<String, Object> node, ParserContext
}
}

public abstract static class AbstractGeometryFieldType<Parsed, Processed> extends MappedFieldType {
public abstract static class AbstractGeometryFieldType<Parsed, Processed> extends AbstractSearchableGeometryFieldType {
protected Orientation orientation = Defaults.ORIENTATION.value();

protected Indexer<Parsed, Processed> geometryIndexer;

protected Parser<Parsed> geometryParser;

protected QueryProcessor geometryQueryBuilder;


protected AbstractGeometryFieldType() {
setIndexOptions(IndexOptions.DOCS);
Expand Down Expand Up @@ -339,14 +323,6 @@ public void setGeometryParser(Parser<Parsed> geometryParser) {
protected Parser<Parsed> geometryParser() {
return geometryParser;
}

public void setGeometryQueryBuilder(QueryProcessor geometryQueryBuilder) {
this.geometryQueryBuilder = geometryQueryBuilder;
}

public QueryProcessor geometryQueryBuilder() {
return geometryQueryBuilder;
}
}

protected Explicit<Boolean> coerce;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/*
* Licensed to Elasticsearch under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.elasticsearch.index.mapper;

import org.apache.lucene.search.Query;
import org.elasticsearch.common.geo.ShapeRelation;
import org.elasticsearch.common.geo.SpatialStrategy;
import org.elasticsearch.geometry.Geometry;
import org.elasticsearch.index.query.QueryShardContext;

/**
* a base class for geometry types that support shape query builder
*/
public abstract class AbstractSearchableGeometryFieldType extends MappedFieldType {

protected QueryProcessor geometryQueryBuilder;

protected AbstractSearchableGeometryFieldType() {
}

protected AbstractSearchableGeometryFieldType(AbstractSearchableGeometryFieldType ref) {
super(ref);
}

public void setGeometryQueryBuilder(QueryProcessor geometryQueryBuilder) {
this.geometryQueryBuilder = geometryQueryBuilder;
}

public QueryProcessor geometryQueryBuilder() {
return geometryQueryBuilder;
}

/**
* interface representing a query builder that generates a query from the given shape
*/
public interface QueryProcessor {
Query process(Geometry shape, String fieldName, ShapeRelation relation, QueryShardContext context);

@Deprecated
default Query process(Geometry shape, String fieldName, SpatialStrategy strategy, ShapeRelation relation,
QueryShardContext context) {
return process(shape, fieldName, relation, context);
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import org.elasticsearch.index.fielddata.plain.AbstractLatLonPointDVIndexFieldData;
import org.elasticsearch.index.query.QueryShardContext;
import org.elasticsearch.index.query.QueryShardException;
import org.elasticsearch.index.query.VectorGeoPointShapeQueryProcessor;
import org.elasticsearch.search.aggregations.support.CoreValuesSourceType;
import org.elasticsearch.search.aggregations.support.ValuesSourceType;

Expand Down Expand Up @@ -123,6 +124,14 @@ public GeoPointFieldMapper build(BuilderContext context, String simpleName, Mapp
ignoreMalformed, ignoreZValue, copyTo);
}

@Override
protected void setupFieldType(BuilderContext context) {
super.setupFieldType(context);

GeoPointFieldType fieldType = (GeoPointFieldType)fieldType();
fieldType.setGeometryQueryBuilder(new VectorGeoPointShapeQueryProcessor());
}

@Override
public GeoPointFieldMapper build(BuilderContext context) {
return build(context, name, fieldType, defaultFieldType, context.indexSettings(),
Expand Down Expand Up @@ -213,7 +222,7 @@ protected void parseCreateField(ParseContext context, List<IndexableField> field
throw new UnsupportedOperationException("Parsing is implemented in parse(), this method should NEVER be called");
}

public static class GeoPointFieldType extends MappedFieldType {
public static class GeoPointFieldType extends AbstractSearchableGeometryFieldType {
public GeoPointFieldType() {
}

Expand Down Expand Up @@ -253,7 +262,8 @@ public Query existsQuery(QueryShardContext context) {

@Override
public Query termQuery(Object value, QueryShardContext context) {
throw new QueryShardException(context, "Geo fields do not support exact searching, use dedicated geo queries instead: ["
throw new QueryShardException(context,
"Geo fields do not support exact searching, use dedicated geo queries instead: ["
+ name() + "]");
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.apache.lucene.index.IndexableField;
import org.elasticsearch.common.geo.GeoLineDecomposer;
import org.elasticsearch.common.geo.GeoPolygonDecomposer;
import org.elasticsearch.common.geo.GeoShapeType;
import org.elasticsearch.geometry.Circle;
import org.elasticsearch.geometry.Geometry;
import org.elasticsearch.geometry.GeometryCollection;
Expand Down Expand Up @@ -64,7 +65,7 @@ public Geometry prepareForIndexing(Geometry geometry) {
return geometry.visit(new GeometryVisitor<>() {
@Override
public Geometry visit(Circle circle) {
throw new UnsupportedOperationException("CIRCLE geometry is not supported");
throw new UnsupportedOperationException(GeoShapeType.CIRCLE + " geometry is not supported");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -337,11 +337,9 @@ public boolean ignoreUnmapped() {
}

/** list of content types this shape query is compatible with */
protected abstract List validContentTypes();
protected abstract List<String> validContentTypes();
/** builds the appropriate lucene shape query */
protected abstract Query buildShapeQuery(QueryShardContext context, MappedFieldType fieldType);
/** returns expected content type for this query */
protected abstract String queryFieldType();
/** writes the xcontent specific to this shape query */
protected abstract void doShapeQueryXContent(XContentBuilder builder, Params params) throws IOException;
/** creates a new ShapeQueryBuilder from the provided field name and shape builder */
Expand All @@ -365,7 +363,9 @@ protected Query doToQuery(QueryShardContext context) {
if (ignoreUnmapped) {
return new MatchNoDocsQuery();
} else {
throw new QueryShardException(context, "failed to find " + queryFieldType() + " field [" + fieldName + "]");
throw new QueryShardException(context, "failed to find "
+ String.join(" or ", validContentTypes())
+ " field [" + fieldName + "]");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,14 @@
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.geometry.Geometry;
import org.elasticsearch.index.mapper.AbstractGeometryFieldMapper;
import org.elasticsearch.index.mapper.AbstractSearchableGeometryFieldType;
import org.elasticsearch.index.mapper.GeoPointFieldMapper;
import org.elasticsearch.index.mapper.GeoShapeFieldMapper;
import org.elasticsearch.index.mapper.MappedFieldType;

import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.function.Supplier;
Expand All @@ -56,6 +58,12 @@ public class GeoShapeQueryBuilder extends AbstractGeometryQueryBuilder<GeoShapeQ

private SpatialStrategy strategy;

protected static final List<String> validContentTypes =
Collections.unmodifiableList(
Arrays.asList(
GeoShapeFieldMapper.CONTENT_TYPE,
GeoPointFieldMapper.CONTENT_TYPE));

/**
* Creates a new GeoShapeQueryBuilder whose Query will be against the given
* field name using the given Shape
Expand Down Expand Up @@ -168,13 +176,8 @@ public SpatialStrategy strategy() {
}

@Override
protected List validContentTypes() {
return Arrays.asList(GeoShapeFieldMapper.CONTENT_TYPE);
}

@Override
public String queryFieldType() {
return GeoShapeFieldMapper.CONTENT_TYPE;
protected List<String> validContentTypes() {
return validContentTypes;
}

@Override
Expand All @@ -197,12 +200,15 @@ protected GeoShapeQueryBuilder newShapeQueryBuilder(String fieldName, Supplier<G

@Override
public Query buildShapeQuery(QueryShardContext context, MappedFieldType fieldType) {
if (fieldType.typeName().equals(GeoShapeFieldMapper.CONTENT_TYPE) == false) {
if (validContentTypes().contains(fieldType.typeName()) == false) {
throw new QueryShardException(context,
"Field [" + fieldName + "] is not of type [" + queryFieldType() + "] but of type [" + fieldType.typeName() + "]");
"Field [" + fieldName + "] is of unsupported type [" + fieldType.typeName() + "]. ["
+ NAME + "] query supports the following types ["
+ String.join(",", validContentTypes()) + "]");
}

final AbstractGeometryFieldMapper.AbstractGeometryFieldType ft = (AbstractGeometryFieldMapper.AbstractGeometryFieldType) fieldType;
final AbstractSearchableGeometryFieldType ft =
(AbstractSearchableGeometryFieldType) fieldType;
return new ConstantScoreQuery(ft.geometryQueryBuilder().process(shape, fieldName, strategy, relation, context));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
import org.elasticsearch.geometry.Polygon;
import org.elasticsearch.geometry.Rectangle;
import org.elasticsearch.index.mapper.AbstractGeometryFieldMapper;
import org.elasticsearch.index.mapper.AbstractSearchableGeometryFieldType;
import org.elasticsearch.index.mapper.LegacyGeoShapeFieldMapper;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.spatial4j.shape.Shape;
Expand All @@ -62,7 +63,7 @@

import static org.elasticsearch.search.SearchService.ALLOW_EXPENSIVE_QUERIES;

public class LegacyGeoShapeQueryProcessor implements AbstractGeometryFieldMapper.QueryProcessor {
public class LegacyGeoShapeQueryProcessor implements AbstractSearchableGeometryFieldType.QueryProcessor {

private AbstractGeometryFieldMapper.AbstractGeometryFieldType ft;

Expand Down
Loading