You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by lu...@apache.org on 2022/11/08 09:00:13 UTC

[lucene] branch branch_9x updated: Simplify the logic of matchAll() in IndexSortSortedNumericDocValuesRangeQuery (#11884)

This is an automated email from the ASF dual-hosted git repository.

luxugang pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/lucene.git


The following commit(s) were added to refs/heads/branch_9x by this push:
     new 473e517fe09 Simplify the logic of matchAll() in IndexSortSortedNumericDocValuesRangeQuery (#11884)
473e517fe09 is described below

commit 473e517fe091865f682db8b9ad12c6b17dc34c76
Author: Lu Xugang <lu...@apache.org>
AuthorDate: Mon Nov 7 19:09:52 2022 +0800

    Simplify the logic of matchAll() in IndexSortSortedNumericDocValuesRangeQuery (#11884)
    
    * Simplify the logic of matchAll() in IndexSortSortedNumericDocValuesRangeQuery
---
 lucene/CHANGES.txt                                         |  2 ++
 .../search/IndexSortSortedNumericDocValuesRangeQuery.java  | 14 ++++----------
 .../TestIndexSortSortedNumericDocValuesRangeQuery.java     |  7 +++++++
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index f93eea5eb10..39a3a0c7e2f 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -63,6 +63,8 @@ Optimizations
 * GITHUB#11876: Use ByteArrayComparator to speed up PointInSetQuery in single dimension case.
   (Guo Feng)
 
+* GITHUB#11884: Simplify the logic of matchAll() in IndexSortSortedNumericDocValuesRangeQuery. (Lu Xugang)
+
 Other
 ---------------------
 
diff --git a/lucene/sandbox/src/java/org/apache/lucene/sandbox/search/IndexSortSortedNumericDocValuesRangeQuery.java b/lucene/sandbox/src/java/org/apache/lucene/sandbox/search/IndexSortSortedNumericDocValuesRangeQuery.java
index a3baa9d48bd..2d6c0384e96 100644
--- a/lucene/sandbox/src/java/org/apache/lucene/sandbox/search/IndexSortSortedNumericDocValuesRangeQuery.java
+++ b/lucene/sandbox/src/java/org/apache/lucene/sandbox/search/IndexSortSortedNumericDocValuesRangeQuery.java
@@ -299,18 +299,12 @@ public class IndexSortSortedNumericDocValuesRangeQuery extends Query {
         ArrayUtil.getUnsignedComparator(points.getBytesPerDimension());
     for (int dim = 0; dim < points.getNumDimensions(); dim++) {
       int offset = dim * points.getBytesPerDimension();
-      if (comparator.compare(points.getMinPackedValue(), offset, queryUpperPoint, offset) > 0) {
-        return false;
-      }
-      if (comparator.compare(points.getMaxPackedValue(), offset, queryLowerPoint, offset) < 0) {
-        return false;
-      }
-      if (comparator.compare(points.getMinPackedValue(), offset, queryLowerPoint, offset) < 0
-          || comparator.compare(points.getMaxPackedValue(), offset, queryUpperPoint, offset) > 0) {
-        return false;
+      if (comparator.compare(points.getMinPackedValue(), offset, queryLowerPoint, offset) >= 0
+          && comparator.compare(points.getMaxPackedValue(), offset, queryUpperPoint, offset) <= 0) {
+        return true;
       }
     }
-    return true;
+    return false;
   }
 
   private BoundedDocIdSetIterator getDocIdSetIteratorOrNullFromBkd(
diff --git a/lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestIndexSortSortedNumericDocValuesRangeQuery.java b/lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestIndexSortSortedNumericDocValuesRangeQuery.java
index 74d671aa774..8f1d591b3e2 100644
--- a/lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestIndexSortSortedNumericDocValuesRangeQuery.java
+++ b/lucene/sandbox/src/test/org/apache/lucene/sandbox/search/TestIndexSortSortedNumericDocValuesRangeQuery.java
@@ -688,6 +688,13 @@ public class TestIndexSortSortedNumericDocValuesRangeQuery extends LuceneTestCas
       assertEquals(2500, weight.count(context));
     }
 
+    fallbackQuery = LongPoint.newRangeQuery(filedName, 5, 9);
+    query = new IndexSortSortedNumericDocValuesRangeQuery(filedName, 2, 10, fallbackQuery);
+    weight = query.createWeight(searcher, ScoreMode.COMPLETE, 1.0f);
+    for (LeafReaderContext context : searcher.getLeafContexts()) {
+      assertEquals(2500, weight.count(context));
+    }
+
     fallbackQuery = LongPoint.newRangeQuery(filedName, 2, 3);
     query = new IndexSortSortedNumericDocValuesRangeQuery(filedName, 2, 3, fallbackQuery);
     weight = query.createWeight(searcher, ScoreMode.COMPLETE, 1.0f);