From c28915d303d298129e71d1aaf9b065f56dabaf3d Mon Sep 17 00:00:00 2001 From: Harsha Vamsi Kalluri Date: Tue, 15 Apr 2025 21:17:57 -0700 Subject: [PATCH] Upgrade to lucene 10.2 Signed-off-by: Harsha Vamsi Kalluri --- gradle/libs.versions.toml | 2 +- .../ApproximatePointRangeQuery.java | 21 ++++++++----------- .../search/query/BitmapIndexQuery.java | 11 +++++----- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 51afc304263bf..109d38cb9e962 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] opensearch = "3.0.0" -lucene = "10.1.0" +lucene = "10.2.0" bundled_jdk_vendor = "adoptium" bundled_jdk = "21.0.6+7" diff --git a/server/src/main/java/org/opensearch/search/approximate/ApproximatePointRangeQuery.java b/server/src/main/java/org/opensearch/search/approximate/ApproximatePointRangeQuery.java index 48f7671b21971..7c17953e7b7de 100644 --- a/server/src/main/java/org/opensearch/search/approximate/ApproximatePointRangeQuery.java +++ b/server/src/main/java/org/opensearch/search/approximate/ApproximatePointRangeQuery.java @@ -12,7 +12,7 @@ import org.apache.lucene.index.LeafReader; import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.PointValues; -import org.apache.lucene.search.ConstantScoreScorer; +import org.apache.lucene.search.ConstantScoreScorerSupplier; import org.apache.lucene.search.ConstantScoreWeight; import org.apache.lucene.search.DocIdSetIterator; import org.apache.lucene.search.IndexSearcher; @@ -20,7 +20,6 @@ import org.apache.lucene.search.Query; import org.apache.lucene.search.QueryVisitor; import org.apache.lucene.search.ScoreMode; -import org.apache.lucene.search.Scorer; import org.apache.lucene.search.ScorerSupplier; import org.apache.lucene.search.Weight; import org.apache.lucene.util.ArrayUtil; @@ -365,17 +364,16 @@ public ScorerSupplier scorerSupplier(LeafReaderContext context) throws IOExcepti return pointRangeQueryWeight.scorerSupplier(context); } else { if (sortOrder == null || sortOrder.equals(SortOrder.ASC)) { - return new ScorerSupplier() { + return new ConstantScoreScorerSupplier(score(), scoreMode, reader.maxDoc()) { - final DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, pointRangeQuery.getField()); + final DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values); final PointValues.IntersectVisitor visitor = getIntersectVisitor(result, docCount); long cost = -1; @Override - public Scorer get(long leadCost) throws IOException { + public DocIdSetIterator iterator(long l) throws IOException { intersectLeft(values.getPointTree(), visitor, docCount); - DocIdSetIterator iterator = result.build().iterator(); - return new ConstantScoreScorer(score(), scoreMode, iterator); + return result.build().iterator(); } @Override @@ -393,17 +391,16 @@ public long cost() { // than expected final int deletedDocs = reader.numDeletedDocs(); size += deletedDocs; - return new ScorerSupplier() { + return new ConstantScoreScorerSupplier(score(), scoreMode, reader.maxDoc()) { - final DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, pointRangeQuery.getField()); + final DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values); final PointValues.IntersectVisitor visitor = getIntersectVisitor(result, docCount); long cost = -1; @Override - public Scorer get(long leadCost) throws IOException { + public DocIdSetIterator iterator(long l) throws IOException { intersectRight(values.getPointTree(), visitor, docCount); - DocIdSetIterator iterator = result.build().iterator(); - return new ConstantScoreScorer(score(), scoreMode, iterator); + return result.build().iterator(); } @Override diff --git a/server/src/main/java/org/opensearch/search/query/BitmapIndexQuery.java b/server/src/main/java/org/opensearch/search/query/BitmapIndexQuery.java index 2451c3d8d7d4a..4c20ff456fb34 100644 --- a/server/src/main/java/org/opensearch/search/query/BitmapIndexQuery.java +++ b/server/src/main/java/org/opensearch/search/query/BitmapIndexQuery.java @@ -12,7 +12,7 @@ import org.apache.lucene.index.LeafReader; import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.PointValues; -import org.apache.lucene.search.ConstantScoreScorer; +import org.apache.lucene.search.ConstantScoreScorerSupplier; import org.apache.lucene.search.ConstantScoreWeight; import org.apache.lucene.search.DocIdSetIterator; import org.apache.lucene.search.IndexSearcher; @@ -20,7 +20,6 @@ import org.apache.lucene.search.Query; import org.apache.lucene.search.QueryVisitor; import org.apache.lucene.search.ScoreMode; -import org.apache.lucene.search.Scorer; import org.apache.lucene.search.ScorerSupplier; import org.apache.lucene.search.Weight; import org.apache.lucene.util.Accountable; @@ -109,16 +108,16 @@ public ScorerSupplier scorerSupplier(LeafReaderContext context) throws IOExcepti throw new IllegalArgumentException("field must have only one dimension"); } - return new ScorerSupplier() { + return new ConstantScoreScorerSupplier(score(), scoreMode, reader.maxDoc()) { long cost = -1; - final DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field); + final DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values); final MergePointVisitor visitor = new MergePointVisitor(result); @Override - public Scorer get(long leadCost) throws IOException { + public DocIdSetIterator iterator(long l) throws IOException { values.intersect(visitor); - return new ConstantScoreScorer(score(), scoreMode, result.build().iterator()); + return result.build().iterator(); } @Override