lucene 4: Upgraded GeoDistanceRangeFilter, GeoPolygonFilter.

This commit is contained in:
Martijn van Groningen 2012-11-01 13:08:20 +01:00 committed by Shay Banon
parent 415cfa2e89
commit d42d153c48
2 changed files with 12 additions and 10 deletions

View File

@ -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 {

View File

@ -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