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);