You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by gs...@apache.org on 2022/06/17 17:57:18 UTC
[lucene] branch branch_9x updated: LUCENE-10603: Change iteration methodology for SSDV ordinals in the faceting module
This is an automated email from the ASF dual-hosted git repository.
gsmiller 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 2265b7109b2 LUCENE-10603: Change iteration methodology for SSDV ordinals in the faceting module
2265b7109b2 is described below
commit 2265b7109b2c7f79671306096a05d9a37306e7ed
Author: Greg Miller <gs...@gmail.com>
AuthorDate: Fri Jun 17 10:37:24 2022 -0700
LUCENE-10603: Change iteration methodology for SSDV ordinals in the faceting module
---
lucene/CHANGES.txt | 3 +++
.../lucene/facet/StringValueFacetCounts.java | 25 ++++++++----------
.../ConcurrentSortedSetDocValuesFacetCounts.java | 30 +++++++++-------------
.../sortedset/SortedSetDocValuesFacetCounts.java | 25 ++++++++----------
4 files changed, 35 insertions(+), 48 deletions(-)
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index c583bd6372d..72850ea120b 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -84,6 +84,9 @@ Improvements
* LUCENE-10585: Facet module code cleanup (copy/paste scrubbing, simplification and some very minor
optimization tweaks). (Greg Miller)
+* LUCENE-10603: Update SortedSetDocValues iteration within faceting implementations to use
+ SortedSetDocValues#docValueCount(). (Greg Miller)
+
Optimizations
---------------------
* LUCENE-8519: MultiDocValues.getNormValues should not call getMergedFieldInfos (Rushabh Shah)
diff --git a/lucene/facet/src/java/org/apache/lucene/facet/StringValueFacetCounts.java b/lucene/facet/src/java/org/apache/lucene/facet/StringValueFacetCounts.java
index 3486dbf66e1..aa82c89c742 100644
--- a/lucene/facet/src/java/org/apache/lucene/facet/StringValueFacetCounts.java
+++ b/lucene/facet/src/java/org/apache/lucene/facet/StringValueFacetCounts.java
@@ -374,15 +374,14 @@ public class StringValueFacetCounts extends Facets {
}
} else {
for (int doc = it.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = it.nextDoc()) {
- int term = (int) multiValues.nextOrd();
boolean countedDocInTotal = false;
- while (term != SortedSetDocValues.NO_MORE_ORDS) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
increment(term);
if (countedDocInTotal == false) {
totalDocCount++;
countedDocInTotal = true;
}
- term = (int) multiValues.nextOrd();
}
}
}
@@ -402,15 +401,14 @@ public class StringValueFacetCounts extends Facets {
}
} else {
for (int doc = it.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = it.nextDoc()) {
- int term = (int) multiValues.nextOrd();
boolean countedDocInTotal = false;
- while (term != SortedSetDocValues.NO_MORE_ORDS) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
increment((int) ordMap.get(term));
if (countedDocInTotal == false) {
totalDocCount++;
countedDocInTotal = true;
}
- term = (int) multiValues.nextOrd();
}
}
}
@@ -427,15 +425,14 @@ public class StringValueFacetCounts extends Facets {
}
} else {
for (int doc = it.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = it.nextDoc()) {
- int term = (int) multiValues.nextOrd();
boolean countedDocInTotal = false;
- while (term != SortedSetDocValues.NO_MORE_ORDS) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
segCounts[term]++;
if (countedDocInTotal == false) {
totalDocCount++;
countedDocInTotal = true;
}
- term = (int) multiValues.nextOrd();
}
}
}
@@ -474,9 +471,8 @@ public class StringValueFacetCounts extends Facets {
doc != DocIdSetIterator.NO_MORE_DOCS;
doc = multiValues.nextDoc()) {
boolean countedDocInTotal = false;
- for (int term = (int) multiValues.nextOrd();
- term != SortedSetDocValues.NO_MORE_ORDS;
- term = (int) multiValues.nextOrd()) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
increment(term);
if (countedDocInTotal == false) {
totalDocCount++;
@@ -509,9 +505,8 @@ public class StringValueFacetCounts extends Facets {
doc != DocIdSetIterator.NO_MORE_DOCS;
doc = multiValues.nextDoc()) {
boolean countedDocInTotal = false;
- for (int term = (int) multiValues.nextOrd();
- term != SortedSetDocValues.NO_MORE_ORDS;
- term = (int) multiValues.nextOrd()) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
segCounts[term]++;
if (countedDocInTotal == false) {
totalDocCount++;
diff --git a/lucene/facet/src/java/org/apache/lucene/facet/sortedset/ConcurrentSortedSetDocValuesFacetCounts.java b/lucene/facet/src/java/org/apache/lucene/facet/sortedset/ConcurrentSortedSetDocValuesFacetCounts.java
index 346851e2f1b..221836cea05 100644
--- a/lucene/facet/src/java/org/apache/lucene/facet/sortedset/ConcurrentSortedSetDocValuesFacetCounts.java
+++ b/lucene/facet/src/java/org/apache/lucene/facet/sortedset/ConcurrentSortedSetDocValuesFacetCounts.java
@@ -157,9 +157,8 @@ public class ConcurrentSortedSetDocValuesFacetCounts extends AbstractSortedSetDo
for (int doc = multiValues.nextDoc();
doc != DocIdSetIterator.NO_MORE_DOCS;
doc = multiValues.nextDoc()) {
- for (int term = (int) multiValues.nextOrd();
- term != SortedSetDocValues.NO_MORE_ORDS;
- term = (int) multiValues.nextOrd()) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
counts.incrementAndGet((int) ordMap.get(term));
}
}
@@ -167,9 +166,8 @@ public class ConcurrentSortedSetDocValuesFacetCounts extends AbstractSortedSetDo
for (int doc = it.nextDoc();
doc != DocIdSetIterator.NO_MORE_DOCS;
doc = it.nextDoc()) {
- for (int term = (int) multiValues.nextOrd();
- term != SortedSetDocValues.NO_MORE_ORDS;
- term = (int) multiValues.nextOrd()) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
counts.incrementAndGet((int) ordMap.get(term));
}
}
@@ -198,9 +196,8 @@ public class ConcurrentSortedSetDocValuesFacetCounts extends AbstractSortedSetDo
for (int doc = multiValues.nextDoc();
doc != DocIdSetIterator.NO_MORE_DOCS;
doc = multiValues.nextDoc()) {
- for (int term = (int) multiValues.nextOrd();
- term != SortedSetDocValues.NO_MORE_ORDS;
- term = (int) multiValues.nextOrd()) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
segCounts[term]++;
}
}
@@ -208,9 +205,8 @@ public class ConcurrentSortedSetDocValuesFacetCounts extends AbstractSortedSetDo
for (int doc = it.nextDoc();
doc != DocIdSetIterator.NO_MORE_DOCS;
doc = it.nextDoc()) {
- for (int term = (int) multiValues.nextOrd();
- term != SortedSetDocValues.NO_MORE_ORDS;
- term = (int) multiValues.nextOrd()) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
segCounts[term]++;
}
}
@@ -245,17 +241,15 @@ public class ConcurrentSortedSetDocValuesFacetCounts extends AbstractSortedSetDo
for (int doc = multiValues.nextDoc();
doc != DocIdSetIterator.NO_MORE_DOCS;
doc = multiValues.nextDoc()) {
- for (int term = (int) multiValues.nextOrd();
- term != SortedSetDocValues.NO_MORE_ORDS;
- term = (int) multiValues.nextOrd()) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
counts.incrementAndGet(term);
}
}
} else {
for (int doc = it.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = it.nextDoc()) {
- for (int term = (int) multiValues.nextOrd();
- term != SortedSetDocValues.NO_MORE_ORDS;
- term = (int) multiValues.nextOrd()) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
counts.incrementAndGet(term);
}
}
diff --git a/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java b/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java
index 3c626e90bc5..a40a3b3794f 100644
--- a/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java
+++ b/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java
@@ -121,10 +121,9 @@ public class SortedSetDocValuesFacetCounts extends AbstractSortedSetDocValueFace
for (int doc = multiValues.nextDoc();
doc != DocIdSetIterator.NO_MORE_DOCS;
doc = multiValues.nextDoc()) {
- int term = (int) multiValues.nextOrd();
- while (term != SortedSetDocValues.NO_MORE_ORDS) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
segCounts[term]++;
- term = (int) multiValues.nextOrd();
}
}
}
@@ -150,10 +149,9 @@ public class SortedSetDocValuesFacetCounts extends AbstractSortedSetDocValueFace
for (int doc = multiValues.nextDoc();
doc != DocIdSetIterator.NO_MORE_DOCS;
doc = multiValues.nextDoc()) {
- int term = (int) multiValues.nextOrd();
- while (term != SortedSetDocValues.NO_MORE_ORDS) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
counts[term]++;
- term = (int) multiValues.nextOrd();
}
}
}
@@ -204,10 +202,9 @@ public class SortedSetDocValuesFacetCounts extends AbstractSortedSetDocValueFace
}
} else {
for (int doc = it.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = it.nextDoc()) {
- int term = (int) multiValues.nextOrd();
- while (term != SortedSetDocValues.NO_MORE_ORDS) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
counts[(int) ordMap.get(term)]++;
- term = (int) multiValues.nextOrd();
}
}
}
@@ -220,10 +217,9 @@ public class SortedSetDocValuesFacetCounts extends AbstractSortedSetDocValueFace
}
} else {
for (int doc = it.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = it.nextDoc()) {
- int term = (int) multiValues.nextOrd();
- while (term != SortedSetDocValues.NO_MORE_ORDS) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
segCounts[term]++;
- term = (int) multiValues.nextOrd();
}
}
}
@@ -246,10 +242,9 @@ public class SortedSetDocValuesFacetCounts extends AbstractSortedSetDocValueFace
}
} else {
for (int doc = it.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = it.nextDoc()) {
- int term = (int) multiValues.nextOrd();
- while (term != SortedSetDocValues.NO_MORE_ORDS) {
+ for (int i = 0; i < multiValues.docValueCount(); i++) {
+ int term = (int) multiValues.nextOrd();
counts[term]++;
- term = (int) multiValues.nextOrd();
}
}
}