diff --git a/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceRangeFilter.java b/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceRangeFilter.java index 086c7b84851..b83cf19797d 100644 --- a/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceRangeFilter.java +++ b/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceRangeFilter.java @@ -20,9 +20,10 @@ package org.elasticsearch.index.search.geo; import com.google.common.collect.ImmutableList; -import org.apache.lucene.index.IndexReader; +import org.apache.lucene.index.AtomicReaderContext; import org.apache.lucene.search.DocIdSet; import org.apache.lucene.search.Filter; +import org.apache.lucene.util.Bits; import org.apache.lucene.util.NumericUtils; import org.elasticsearch.ElasticSearchIllegalArgumentException; import org.elasticsearch.common.lucene.docset.AndDocSet; @@ -119,17 +120,17 @@ public class GeoDistanceRangeFilter extends Filter { } @Override - public DocIdSet getDocIdSet(IndexReader reader) throws IOException { + public DocIdSet getDocIdSet(AtomicReaderContext context, Bits acceptedDocs) throws IOException { DocSet boundingBoxDocSet = null; if (boundingBoxFilter != null) { - DocIdSet docIdSet = boundingBoxFilter.getDocIdSet(reader); + DocIdSet docIdSet = boundingBoxFilter.getDocIdSet(context, acceptedDocs); if (docIdSet == null) { return null; } - boundingBoxDocSet = DocSets.convert(reader, docIdSet); + boundingBoxDocSet = DocSets.convert(context.reader(), docIdSet); } - final GeoPointFieldData fieldData = (GeoPointFieldData) fieldDataCache.cache(GeoPointFieldDataType.TYPE, reader, fieldName); - GeoDistanceRangeDocSet distDocSet = new GeoDistanceRangeDocSet(reader.maxDoc(), fieldData, fixedSourceDistance, distanceBoundingCheck, inclusiveLowerPoint, inclusiveUpperPoint); + final GeoPointFieldData fieldData = (GeoPointFieldData) fieldDataCache.cache(GeoPointFieldDataType.TYPE, context.reader(), fieldName); + GeoDistanceRangeDocSet distDocSet = new GeoDistanceRangeDocSet(context.reader().maxDoc(), fieldData, fixedSourceDistance, distanceBoundingCheck, inclusiveLowerPoint, inclusiveUpperPoint); if (boundingBoxDocSet == null) { return distDocSet; } else { diff --git a/src/main/java/org/elasticsearch/index/search/geo/GeoPolygonFilter.java b/src/main/java/org/elasticsearch/index/search/geo/GeoPolygonFilter.java index cb920a9c471..91e60cd3a15 100644 --- a/src/main/java/org/elasticsearch/index/search/geo/GeoPolygonFilter.java +++ b/src/main/java/org/elasticsearch/index/search/geo/GeoPolygonFilter.java @@ -19,9 +19,10 @@ package org.elasticsearch.index.search.geo; -import org.apache.lucene.index.IndexReader; +import org.apache.lucene.index.AtomicReaderContext; import org.apache.lucene.search.DocIdSet; import org.apache.lucene.search.Filter; +import org.apache.lucene.util.Bits; import org.elasticsearch.common.lucene.docset.GetDocSet; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.mapper.geo.GeoPointFieldData; @@ -56,9 +57,9 @@ public class GeoPolygonFilter extends Filter { } @Override - public DocIdSet getDocIdSet(IndexReader reader) throws IOException { - final GeoPointFieldData fieldData = (GeoPointFieldData) fieldDataCache.cache(GeoPointFieldDataType.TYPE, reader, fieldName); - return new GeoPolygonDocSet(reader.maxDoc(), fieldData, points); + public DocIdSet getDocIdSet(AtomicReaderContext context, Bits acceptedDocs) throws IOException { + final GeoPointFieldData fieldData = (GeoPointFieldData) fieldDataCache.cache(GeoPointFieldDataType.TYPE, context.reader(), fieldName); + return new GeoPolygonDocSet(context.reader().maxDoc(), fieldData, points); } @Override