Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@
import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.ScorerSupplier;
import org.apache.lucene.search.Weight;
import org.apache.lucene.util.DocIdSetBuilder;
import org.apache.lucene.util.NumericUtils;
import org.apache.lucene.util.PointsDocIdSetBuilder;
import org.apache.lucene.util.SloppyMath;

final class LatLonPointDistanceFeatureQuery extends Query {
Expand Down Expand Up @@ -398,12 +398,12 @@ public void setMinCompetitiveScore(float minScore) throws IOException {
NumericUtils.intToSortableBytes(GeoEncodingUtils.encodeLongitude(box.minLon), minLon, 0);
NumericUtils.intToSortableBytes(GeoEncodingUtils.encodeLongitude(box.maxLon), maxLon, 0);

DocIdSetBuilder result = new DocIdSetBuilder(maxDoc);
PointsDocIdSetBuilder result = new PointsDocIdSetBuilder(maxDoc, pointValues);
final int doc = docID();
IntersectVisitor visitor =
new IntersectVisitor() {

DocIdSetBuilder.BulkAdder adder;
PointsDocIdSetBuilder.BulkAdder adder;

@Override
public void grow(int count) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@
import org.apache.lucene.search.Weight;
import org.apache.lucene.util.ArrayUtil;
import org.apache.lucene.util.BitSetIterator;
import org.apache.lucene.util.DocIdSetBuilder;
import org.apache.lucene.util.FixedBitSet;
import org.apache.lucene.util.NumericUtils;
import org.apache.lucene.util.PointsDocIdSetBuilder;

/** Distance query for {@link LatLonPoint}. */
final class LatLonPointDistanceQuery extends Query {
Expand Down Expand Up @@ -148,7 +148,7 @@ public ScorerSupplier scorerSupplier(LeafReaderContext context) throws IOExcepti
LatLonPoint.checkCompatible(fieldInfo);

// matching docids
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
PointsDocIdSetBuilder result = new PointsDocIdSetBuilder(reader.maxDoc(), values);
final IntersectVisitor visitor = getIntersectVisitor(result);

final Weight weight = this;
Expand Down Expand Up @@ -241,10 +241,10 @@ private Relation relate(byte[] minPackedValue, byte[] maxPackedValue) {
}

/** Create a visitor that collects documents matching the range. */
private IntersectVisitor getIntersectVisitor(DocIdSetBuilder result) {
private IntersectVisitor getIntersectVisitor(PointsDocIdSetBuilder result) {
return new IntersectVisitor() {

DocIdSetBuilder.BulkAdder adder;
PointsDocIdSetBuilder.BulkAdder adder;

@Override
public void grow(int count) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
import org.apache.lucene.search.ScorerSupplier;
import org.apache.lucene.search.Weight;
import org.apache.lucene.util.ArrayUtil;
import org.apache.lucene.util.DocIdSetBuilder;
import org.apache.lucene.util.PointsDocIdSetBuilder;

final class LongDistanceFeatureQuery extends Query {

Expand Down Expand Up @@ -384,12 +384,12 @@ public void setMinCompetitiveScore(float minScore) throws IOException {
final byte[] maxValueAsBytes = new byte[Long.BYTES];
LongPoint.encodeDimension(maxValue, maxValueAsBytes, 0);

DocIdSetBuilder result = new DocIdSetBuilder(maxDoc);
PointsDocIdSetBuilder result = new PointsDocIdSetBuilder(maxDoc, pointValues);
final int doc = docID();
IntersectVisitor visitor =
new IntersectVisitor() {

DocIdSetBuilder.BulkAdder adder;
PointsDocIdSetBuilder.BulkAdder adder;

@Override
public void grow(int count) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.ScorerSupplier;
import org.apache.lucene.search.Weight;
import org.apache.lucene.util.DocIdSetBuilder;
import org.apache.lucene.util.PointsDocIdSetBuilder;

/**
* Query class for searching {@code RangeField} types by a defined {@link Relation}.
Expand Down Expand Up @@ -452,9 +452,9 @@ public final Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, fl
throws IOException {
return new ConstantScoreWeight(this, boost) {

private IntersectVisitor getIntersectVisitor(DocIdSetBuilder result) {
private IntersectVisitor getIntersectVisitor(PointsDocIdSetBuilder result) {
return new IntersectVisitor() {
DocIdSetBuilder.BulkAdder adder;
PointsDocIdSetBuilder.BulkAdder adder;

@Override
public void grow(int count) {
Expand Down Expand Up @@ -538,7 +538,7 @@ public long cost() {
} else {
return new ScorerSupplier() {

final DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
final PointsDocIdSetBuilder result = new PointsDocIdSetBuilder(reader.maxDoc(), values);
final IntersectVisitor visitor = getIntersectVisitor(result);
long cost = -1;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@
import org.apache.lucene.search.ScorerSupplier;
import org.apache.lucene.search.Weight;
import org.apache.lucene.util.BitSetIterator;
import org.apache.lucene.util.DocIdSetBuilder;
import org.apache.lucene.util.FixedBitSet;
import org.apache.lucene.util.PointsDocIdSetBuilder;

/**
* Base query class for all spatial geometries: {@link LatLonShape}, {@link LatLonPoint} and {@link
Expand Down Expand Up @@ -187,7 +187,7 @@ && hasAnyHits(spatialVisitor, queryRelation, values) == false) {
return null;
}
// walk the tree to get matching documents
return new RelationScorerSupplier(values, spatialVisitor, queryRelation, field) {
return new RelationScorerSupplier(values, spatialVisitor, queryRelation) {
@Override
public Scorer get(long leadCost) throws IOException {
return getScorer(reader, weight, score(), scoreMode);
Expand Down Expand Up @@ -252,18 +252,15 @@ private abstract static class RelationScorerSupplier extends ScorerSupplier {
private final PointValues values;
private final SpatialVisitor spatialVisitor;
private final QueryRelation queryRelation;
private final String field;
private long cost = -1;

RelationScorerSupplier(
final PointValues values,
SpatialVisitor spatialVisitor,
final QueryRelation queryRelation,
final String field) {
final QueryRelation queryRelation) {
this.values = values;
this.spatialVisitor = spatialVisitor;
this.queryRelation = queryRelation;
this.field = field;
}

protected Scorer getScorer(
Expand Down Expand Up @@ -311,7 +308,8 @@ && cost() > reader.maxDoc() / 2) {
cost[0] == 0 ? DocIdSetIterator.empty() : new BitSetIterator(result, cost[0]);
return new ConstantScoreScorer(weight, boost, scoreMode, iterator);
} else {
final DocIdSetBuilder docIdSetBuilder = new DocIdSetBuilder(reader.maxDoc(), values, field);
final PointsDocIdSetBuilder docIdSetBuilder =
new PointsDocIdSetBuilder(reader.maxDoc(), values);
values.intersect(getSparseVisitor(spatialVisitor, queryRelation, docIdSetBuilder));
final DocIdSetIterator iterator = docIdSetBuilder.build().iterator();
return new ConstantScoreScorer(weight, boost, scoreMode, iterator);
Expand Down Expand Up @@ -405,12 +403,12 @@ public Relation compare(byte[] minTriangle, byte[] maxTriangle) {
private static IntersectVisitor getSparseVisitor(
final SpatialVisitor spatialVisitor,
QueryRelation queryRelation,
final DocIdSetBuilder result) {
final PointsDocIdSetBuilder result) {
final BiFunction<byte[], byte[], Relation> innerFunction =
spatialVisitor.getInnerFunction(queryRelation);
final Predicate<byte[]> leafPredicate = spatialVisitor.getLeafPredicate(queryRelation);
return new IntersectVisitor() {
DocIdSetBuilder.BulkAdder adder;
PointsDocIdSetBuilder.BulkAdder adder;

@Override
public void grow(int count) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.ScorerSupplier;
import org.apache.lucene.search.Weight;
import org.apache.lucene.util.DocIdSetBuilder;
import org.apache.lucene.util.PointsDocIdSetBuilder;

/**
* Finds all previously indexed points that fall within the specified XY geometries.
Expand Down Expand Up @@ -71,9 +71,9 @@ public void visit(QueryVisitor visitor) {
}
}

private IntersectVisitor getIntersectVisitor(DocIdSetBuilder result, Component2D tree) {
private IntersectVisitor getIntersectVisitor(PointsDocIdSetBuilder result, Component2D tree) {
return new IntersectVisitor() {
DocIdSetBuilder.BulkAdder adder;
PointsDocIdSetBuilder.BulkAdder adder;

@Override
public void grow(int count) {
Expand Down Expand Up @@ -149,7 +149,7 @@ public ScorerSupplier scorerSupplier(LeafReaderContext context) throws IOExcepti
return new ScorerSupplier() {

long cost = -1;
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
PointsDocIdSetBuilder result = new PointsDocIdSetBuilder(reader.maxDoc(), values);
final IntersectVisitor visitor = getIntersectVisitor(result, tree);

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.BytesRefIterator;
import org.apache.lucene.util.DocIdSetBuilder;
import org.apache.lucene.util.PointsDocIdSetBuilder;
import org.apache.lucene.util.RamUsageEstimator;

/**
Expand Down Expand Up @@ -173,7 +173,7 @@ public Scorer scorer(LeafReaderContext context) throws IOException {
+ bytesPerDim);
}

DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
PointsDocIdSetBuilder result = new PointsDocIdSetBuilder(reader.maxDoc(), values);

if (numDims == 1) {

Expand Down Expand Up @@ -211,14 +211,14 @@ public boolean isCacheable(LeafReaderContext ctx) {
*/
private class MergePointVisitor implements IntersectVisitor {

private final DocIdSetBuilder result;
private final PointsDocIdSetBuilder result;
private TermIterator iterator;
private BytesRef nextQueryPoint;
private final BytesRef scratch = new BytesRef();
private final PrefixCodedTerms sortedPackedPoints;
private DocIdSetBuilder.BulkAdder adder;
private PointsDocIdSetBuilder.BulkAdder adder;

public MergePointVisitor(PrefixCodedTerms sortedPackedPoints, DocIdSetBuilder result)
public MergePointVisitor(PrefixCodedTerms sortedPackedPoints, PointsDocIdSetBuilder result)
throws IOException {
this.result = result;
this.sortedPackedPoints = sortedPackedPoints;
Expand Down Expand Up @@ -315,11 +315,11 @@ public Relation compare(byte[] minPackedValue, byte[] maxPackedValue) {
private class SinglePointVisitor implements IntersectVisitor {

private final ByteArrayComparator comparator;
private final DocIdSetBuilder result;
private final PointsDocIdSetBuilder result;
private final byte[] pointBytes;
private DocIdSetBuilder.BulkAdder adder;
private PointsDocIdSetBuilder.BulkAdder adder;

public SinglePointVisitor(DocIdSetBuilder result) {
public SinglePointVisitor(PointsDocIdSetBuilder result) {
this.comparator = ArrayUtil.getUnsignedComparator(bytesPerDim);
this.result = result;
this.pointBytes = new byte[bytesPerDim * numDims];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
import org.apache.lucene.util.ArrayUtil;
import org.apache.lucene.util.ArrayUtil.ByteArrayComparator;
import org.apache.lucene.util.BitSetIterator;
import org.apache.lucene.util.DocIdSetBuilder;
import org.apache.lucene.util.FixedBitSet;
import org.apache.lucene.util.PointsDocIdSetBuilder;

/**
* Abstract class for range queries against single or multidimensional points such as {@link
Expand Down Expand Up @@ -165,10 +165,10 @@ private Relation relate(byte[] minPackedValue, byte[] maxPackedValue) {
}
}

private IntersectVisitor getIntersectVisitor(DocIdSetBuilder result) {
private IntersectVisitor getIntersectVisitor(PointsDocIdSetBuilder result) {
return new IntersectVisitor() {

DocIdSetBuilder.BulkAdder adder;
PointsDocIdSetBuilder.BulkAdder adder;

@Override
public void grow(int count) {
Expand Down Expand Up @@ -331,7 +331,7 @@ public long cost() {
} else {
return new ScorerSupplier() {

final DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
final PointsDocIdSetBuilder result = new PointsDocIdSetBuilder(reader.maxDoc(), values);
final IntersectVisitor visitor = getIntersectVisitor(result);
long cost = -1;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
import org.apache.lucene.search.Scorer;
import org.apache.lucene.util.ArrayUtil;
import org.apache.lucene.util.ArrayUtil.ByteArrayComparator;
import org.apache.lucene.util.DocIdSetBuilder;
import org.apache.lucene.util.PointsDocIdSetBuilder;

/**
* Abstract numeric comparator for comparing numeric values. This comparator provides a skipping
Expand Down Expand Up @@ -204,10 +204,10 @@ private void updateCompetitiveIterator() throws IOException {
}
}

DocIdSetBuilder result = new DocIdSetBuilder(maxDoc);
PointsDocIdSetBuilder result = new PointsDocIdSetBuilder(maxDoc, pointValues);
PointValues.IntersectVisitor visitor =
new PointValues.IntersectVisitor() {
DocIdSetBuilder.BulkAdder adder;
PointsDocIdSetBuilder.BulkAdder adder;

@Override
public void grow(int count) {
Expand Down
Loading