Skip to content

Commit

Permalink
Merge branch 'main' of github.com:apache/lucene into hnsw_qset
Browse files Browse the repository at this point in the history
  • Loading branch information
tteofili committed Feb 25, 2025
2 parents 3d2e46b + a230c5a commit 0f3f047
Show file tree
Hide file tree
Showing 10 changed files with 19 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ public ScorerSupplier scorerSupplier(LeafReaderContext context) throws IOExcepti
LatLonPoint.checkCompatible(fieldInfo);

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

return new ScorerSupplier() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,7 @@ public long cost() {
} else {
return new ScorerSupplier() {

final DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
final DocIdSetBuilder result = new DocIdSetBuilder(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 @@ -196,7 +196,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, score, scoreMode);
Expand Down Expand Up @@ -275,18 +275,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 @@ -332,7 +329,7 @@ && cost() > reader.maxDoc() / 2) {
cost[0] == 0 ? DocIdSetIterator.empty() : new BitSetIterator(result, cost[0]);
return new ConstantScoreScorer(boost, scoreMode, iterator);
} else {
final DocIdSetBuilder docIdSetBuilder = new DocIdSetBuilder(reader.maxDoc(), values, field);
final DocIdSetBuilder docIdSetBuilder = new DocIdSetBuilder(reader.maxDoc(), values);
values.intersect(getSparseVisitor(spatialVisitor, queryRelation, docIdSetBuilder));
final DocIdSetIterator iterator = docIdSetBuilder.build().iterator();
return new ConstantScoreScorer(boost, scoreMode, iterator);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ public ScorerSupplier scorerSupplier(LeafReaderContext context) throws IOExcepti
return new ScorerSupplier() {

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

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ public ScorerSupplier scorerSupplier(LeafReaderContext context) throws IOExcepti

@Override
public Scorer get(long leadCost) throws IOException {
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values);
values.intersect(new MergePointVisitor(sortedPackedPoints.iterator(), result));
DocIdSetIterator iterator = result.build().iterator();
return new ConstantScoreScorer(score(), scoreMode, iterator);
Expand All @@ -191,7 +191,7 @@ public long cost() {
try {
if (cost == -1) {
// Computing the cost may be expensive, so only do it if necessary
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values);
cost =
values.estimateDocCount(
new MergePointVisitor(sortedPackedPoints.iterator(), result));
Expand All @@ -215,7 +215,7 @@ public long cost() {

@Override
public Scorer get(long leadCost) throws IOException {
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values);
SinglePointVisitor visitor = new SinglePointVisitor(result);
TermIterator iterator = sortedPackedPoints.iterator();
for (BytesRef point = iterator.next(); point != null; point = iterator.next()) {
Expand All @@ -229,7 +229,7 @@ public Scorer get(long leadCost) throws IOException {
public long cost() {
try {
if (cost == -1) {
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values);
SinglePointVisitor visitor = new SinglePointVisitor(result);
TermIterator iterator = sortedPackedPoints.iterator();
cost = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ public long cost() {
} else {
return new ScorerSupplier() {

final DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
final DocIdSetBuilder result = new DocIdSetBuilder(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 @@ -137,7 +137,7 @@ public DocIdSetBuilder(int maxDoc, Terms terms) throws IOException {
* Create a {@link DocIdSetBuilder} instance that is optimized for accumulating docs that match
* the given {@link PointValues}.
*/
public DocIdSetBuilder(int maxDoc, PointValues values, String field) throws IOException {
public DocIdSetBuilder(int maxDoc, PointValues values) throws IOException {
this(maxDoc, values.getDocCount(), values.size());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,14 +174,14 @@ public void testMisleadingDISICost() throws IOException {

public void testEmptyPoints() throws IOException {
PointValues values = new DummyPointValues(0, 0);
DocIdSetBuilder builder = new DocIdSetBuilder(1, values, "foo");
DocIdSetBuilder builder = new DocIdSetBuilder(1, values);
assertEquals(1d, builder.numValuesPerDoc, 0d);
}

public void testLeverageStats() throws IOException {
// single-valued points
PointValues values = new DummyPointValues(42, 42);
DocIdSetBuilder builder = new DocIdSetBuilder(100, values, "foo");
DocIdSetBuilder builder = new DocIdSetBuilder(100, values);
assertEquals(1d, builder.numValuesPerDoc, 0d);
assertFalse(builder.multivalued);
DocIdSetBuilder.BulkAdder adder = builder.grow(2);
Expand All @@ -193,7 +193,7 @@ public void testLeverageStats() throws IOException {

// multi-valued points
values = new DummyPointValues(42, 63);
builder = new DocIdSetBuilder(100, values, "foo");
builder = new DocIdSetBuilder(100, values);
assertEquals(1.5, builder.numValuesPerDoc, 0d);
assertTrue(builder.multivalued);
adder = builder.grow(2);
Expand All @@ -205,12 +205,12 @@ public void testLeverageStats() throws IOException {

// incomplete stats
values = new DummyPointValues(42, -1);
builder = new DocIdSetBuilder(100, values, "foo");
builder = new DocIdSetBuilder(100, values);
assertEquals(1d, builder.numValuesPerDoc, 0d);
assertTrue(builder.multivalued);

values = new DummyPointValues(-1, 84);
builder = new DocIdSetBuilder(100, values, "foo");
builder = new DocIdSetBuilder(100, values);
assertEquals(1d, builder.numValuesPerDoc, 0d);
assertTrue(builder.multivalued);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ public long cost() {
} else {
return new ScorerSupplier() {

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public ScorerSupplier scorerSupplier(LeafReaderContext context) throws IOExcepti
assert xyzSolid.getRelationship(shape) == GeoArea.WITHIN || xyzSolid.getRelationship(shape) == GeoArea.OVERLAPS: "expected WITHIN (1) or OVERLAPS (2) but got " + xyzSolid.getRelationship(shape) + "; shape="+shape+"; XYZSolid="+xyzSolid;
*/

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

values.intersect(new PointInShapeIntersectVisitor(result, shape, shapeBounds));

Expand Down

0 comments on commit 0f3f047

Please sign in to comment.