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