You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "jpountz (via GitHub)" <gi...@apache.org> on 2025/03/16 21:09:26 UTC

[PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

jpountz opened a new pull request, #14359:
URL: https://github.com/apache/lucene/pull/14359

   The main motivation is to efficiently evaluate range queries on fields that have a doc-value index enabled. These range queries produce two-phase iterators that should match large contiguous range of doc IDs. Using `DenseConjunctionBulkScorer` helps skip these clauses from the conjunction on doc ID ranges that they fully match.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "jpountz (via GitHub)" <gi...@apache.org>.
jpountz commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r2010628644


##########
lucene/core/src/java/org/apache/lucene/search/DocValuesRangeIterator.java:
##########
@@ -210,6 +210,14 @@ public final boolean matches() throws IOException {
     };
   }
 
+  @Override
+  public int docIDRunEnd() throws IOException {

Review Comment:
   We have tests for the `upTo` variable, which is almost the same thing. I'll improve the test to cover `#docIdRunEnd()` at the same time.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "gf2121 (via GitHub)" <gi...@apache.org>.
gf2121 commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r2010115706


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,79 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(

Review Comment:
   Can we make this static?



##########
lucene/core/src/java/org/apache/lucene/search/DocValuesRangeIterator.java:
##########
@@ -210,6 +210,14 @@ public final boolean matches() throws IOException {
     };
   }
 
+  @Override
+  public int docIDRunEnd() throws IOException {

Review Comment:
   Do we have/need any tests against this implementation?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "gf2121 (via GitHub)" <gi...@apache.org>.
gf2121 commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r2010045743


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,77 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(
+      LeafCollector collector,
+      Bits acceptDocs,
+      List<DocIdSetIterator> approximations,
+      List<TwoPhaseIterator> twoPhases,
+      int min,
+      int max)
+      throws IOException {
+    if (approximations.size() == 1) {
+      // Since a TwoPhaseIterator comes with its approximation, the number of approximations is gte
+      // the number of TwoPhaseIterators
+      assert twoPhases.size() <= 1;
+      TwoPhaseIterator twoPhase = twoPhases.get(0);
+      DocIdSetIterator approximation = approximations.isEmpty() ? null : approximations.get(0);

Review Comment:
   Thank you, that makes sense to me. 
   
   The code diff looks a bit crazy ..



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "jpountz (via GitHub)" <gi...@apache.org>.
jpountz commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r2010047831


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,77 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(
+      LeafCollector collector,
+      Bits acceptDocs,
+      List<DocIdSetIterator> approximations,
+      List<TwoPhaseIterator> twoPhases,
+      int min,
+      int max)
+      throws IOException {
+    if (approximations.size() == 1) {
+      // Since a TwoPhaseIterator comes with its approximation, the number of approximations is gte
+      // the number of TwoPhaseIterators
+      assert twoPhases.size() <= 1;
+      TwoPhaseIterator twoPhase = twoPhases.get(0);
+      DocIdSetIterator approximation = approximations.isEmpty() ? null : approximations.get(0);

Review Comment:
   Indeed, it looks like my last push broke something. I'll look into it.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "jpountz (via GitHub)" <gi...@apache.org>.
jpountz commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r2010621926


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,79 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(

Review Comment:
   Yes indeed!



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "jpountz (via GitHub)" <gi...@apache.org>.
jpountz commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r1998546217


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,77 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(

Review Comment:
   The contract is that `TwoPhaseIterator#matches()` verifies if the current doc ID of the approximation matches. So we cannot load matches from the approximation into a bit set and then call `matches()` as it wouldn't check the correct doc ID. We could change the API, but I'm not sure if that would buy anything as our most typical two-phase iterator, PhraseQuery, is similar: `PostingsEnum#nextPosition()` reads the next position of the current doc ID.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "jpountz (via GitHub)" <gi...@apache.org>.
jpountz commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r1998546819


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,77 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(
+      LeafCollector collector,
+      Bits acceptDocs,
+      List<DocIdSetIterator> approximations,
+      List<TwoPhaseIterator> twoPhases,
+      int min,
+      int max)
+      throws IOException {
+    if (approximations.size() == 1) {
+      // Since a TwoPhaseIterator comes with its approximation, the number of approximations is gte
+      // the number of TwoPhaseIterators
+      assert twoPhases.size() <= 1;
+      TwoPhaseIterator twoPhase = twoPhases.get(0);
+      DocIdSetIterator approximation = approximations.isEmpty() ? null : approximations.get(0);

Review Comment:
   Hmm, you're right. This means I'm missing a test case. I'll look into it.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "gf2121 (via GitHub)" <gi...@apache.org>.
gf2121 commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r1998596143


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,77 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(

Review Comment:
   > The contract is that TwoPhaseIterator#matches() verifies if the current doc ID of the approximation matches.
   
   Oh yes, you are right. Thanks for explanation!



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "jpountz (via GitHub)" <gi...@apache.org>.
jpountz merged PR #14359:
URL: https://github.com/apache/lucene/pull/14359


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "gf2121 (via GitHub)" <gi...@apache.org>.
gf2121 commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r1998219212


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,77 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(
+      LeafCollector collector,
+      Bits acceptDocs,
+      List<DocIdSetIterator> approximations,
+      List<TwoPhaseIterator> twoPhases,
+      int min,
+      int max)
+      throws IOException {
+    if (approximations.size() == 1) {
+      // Since a TwoPhaseIterator comes with its approximation, the number of approximations is gte
+      // the number of TwoPhaseIterators
+      assert twoPhases.size() <= 1;
+      TwoPhaseIterator twoPhase = twoPhases.get(0);
+      DocIdSetIterator approximation = approximations.isEmpty() ? null : approximations.get(0);

Review Comment:
   ```suggestion
         DocIdSetIterator approximation = approximations.get(0);
         TwoPhaseIterator twoPhase = twoPhases.isEmpty() ? null : twoPhases.get(0);
   ```



##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,77 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(

Review Comment:
   Out of curiosity: why we are choosing such a per-doc conjunction algorithm instead of scoring approximations into a bitset and check `matches` for existing bits? Actually i also thought about something like `IndexedDISI#intoBitset` to speed up range queries on sparse doc values :)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "gf2121 (via GitHub)" <gi...@apache.org>.
gf2121 commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r1998258104


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,77 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(

Review Comment:
   Out of curiosity: why we are choosing such a per-doc conjunction algorithm instead of scoring approximations into a bitset and check `matches` for existing bits? Actually i also thought about something like `IndexedDISI#intoBitset` to speed up range queries on `Match.IF_DOC_HAS_VALUE` :)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "jpountz (via GitHub)" <gi...@apache.org>.
jpountz commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r2010057350


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,77 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(
+      LeafCollector collector,
+      Bits acceptDocs,
+      List<DocIdSetIterator> approximations,
+      List<TwoPhaseIterator> twoPhases,
+      int min,
+      int max)
+      throws IOException {
+    if (approximations.size() == 1) {
+      // Since a TwoPhaseIterator comes with its approximation, the number of approximations is gte
+      // the number of TwoPhaseIterators
+      assert twoPhases.size() <= 1;
+      TwoPhaseIterator twoPhase = twoPhases.get(0);
+      DocIdSetIterator approximation = approximations.isEmpty() ? null : approximations.get(0);

Review Comment:
   I think I fixed it but I had to force-push.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "jpountz (via GitHub)" <gi...@apache.org>.
jpountz commented on code in PR #14359:
URL: https://github.com/apache/lucene/pull/14359#discussion_r2010038886


##########
lucene/core/src/java/org/apache/lucene/search/DenseConjunctionBulkScorer.java:
##########
@@ -238,9 +296,77 @@ private void scoreWindowUsingBitSet(
     windowMatches.clear();
   }
 
+  private void scoreWindowUsingLeapFrog(
+      LeafCollector collector,
+      Bits acceptDocs,
+      List<DocIdSetIterator> approximations,
+      List<TwoPhaseIterator> twoPhases,
+      int min,
+      int max)
+      throws IOException {
+    if (approximations.size() == 1) {
+      // Since a TwoPhaseIterator comes with its approximation, the number of approximations is gte
+      // the number of TwoPhaseIterators
+      assert twoPhases.size() <= 1;
+      TwoPhaseIterator twoPhase = twoPhases.get(0);
+      DocIdSetIterator approximation = approximations.isEmpty() ? null : approximations.get(0);

Review Comment:
   I ended up adding an assertion instead, since this code path is only used when there is at least one two-phase iterator.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


Re: [PR] Add support for two-phase iterators to DenseConjunctionBulkScorer. [lucene]

Posted by "jpountz (via GitHub)" <gi...@apache.org>.
jpountz commented on PR #14359:
URL: https://github.com/apache/lucene/pull/14359#issuecomment-2727649234

   This doesn't slow down existing tasks significantly, including `CountFilteredPhrase` which now runs with `DenseConjunctionBulkScorer` vs. a `DefaultBulkScorer` on top of a `ConjunctionScorer` before.
   
   ```
                               TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                      TermMonthSort     3433.89      (3.5%)     3372.95      (2.8%)   -1.8% (  -7% -    4%) 0.078
                CountFilteredPhrase       25.76      (2.6%)       25.34      (2.6%)   -1.6% (  -6% -    3%) 0.048
                           Wildcard       76.02      (3.6%)       75.31      (3.9%)   -0.9% (  -8% -    6%) 0.435
                    FilteredPrefix3      128.10      (3.3%)      126.96      (2.4%)   -0.9% (  -6% -    4%) 0.327
                            Prefix3      133.76      (3.2%)      132.58      (2.6%)   -0.9% (  -6% -    5%) 0.339
                         OrHighHigh       51.94      (3.4%)       51.49      (3.9%)   -0.9% (  -7% -    6%) 0.457
                           Or3Terms      162.21      (5.8%)      160.85      (5.6%)   -0.8% ( -11% -   11%) 0.642
                      TermTitleSort      141.36      (1.7%)      140.17      (2.3%)   -0.8% (  -4% -    3%) 0.201
                     FilteredIntNRQ      297.20      (2.2%)      295.03      (3.0%)   -0.7% (  -5% -    4%) 0.380
                             Fuzzy2       74.81      (2.9%)       74.30      (2.8%)   -0.7% (  -6% -    5%) 0.438
                             Fuzzy1       79.34      (3.1%)       78.87      (2.9%)   -0.6% (  -6% -    5%) 0.541
                          And3Terms      169.32      (5.3%)      168.32      (4.8%)   -0.6% ( -10% -   10%) 0.714
                             IntNRQ      304.31      (2.2%)      302.66      (2.6%)   -0.5% (  -5% -    4%) 0.481
                 Or2Terms2StopWords      155.77      (5.5%)      154.94      (5.5%)   -0.5% ( -10% -   10%) 0.758
                  TermDayOfYearSort      696.95      (1.9%)      693.32      (2.2%)   -0.5% (  -4% -    3%) 0.426
                    CountAndHighMed      289.64      (1.8%)      288.19      (1.7%)   -0.5% (  -3% -    3%) 0.363
                        OrStopWords       31.68      (9.6%)       31.52      (9.2%)   -0.5% ( -17% -   20%) 0.869
                       AndStopWords       30.55      (8.3%)       30.41      (7.6%)   -0.5% ( -15% -   16%) 0.857
                          OrHighMed      196.20      (2.8%)      195.33      (3.3%)   -0.4% (  -6% -    5%) 0.643
                And2Terms2StopWords      158.92      (5.3%)      158.23      (4.8%)   -0.4% ( -10% -   10%) 0.787
               FilteredAndStopWords       55.81      (2.8%)       55.58      (2.2%)   -0.4% (  -5% -    4%) 0.606
                         AndHighMed      131.29      (1.4%)      130.78      (1.2%)   -0.4% (  -2% -    2%) 0.349
                     CountOrHighMed      357.52      (1.7%)      356.16      (1.9%)   -0.4% (  -3% -    3%) 0.498
        FilteredAnd2Terms2StopWords      200.10      (2.1%)      199.46      (1.5%)   -0.3% (  -3% -    3%) 0.585
                          CountTerm     8915.10      (4.2%)     8887.69      (4.5%)   -0.3% (  -8% -    8%) 0.822
                  CombinedOrHighMed       72.13      (2.5%)       71.95      (2.3%)   -0.2% (  -4% -    4%) 0.749
                 CombinedOrHighHigh       18.78      (2.3%)       18.74      (2.1%)   -0.2% (  -4% -    4%) 0.731
                    DismaxOrHighMed      170.26      (2.1%)      169.93      (1.9%)   -0.2% (  -4% -    3%) 0.760
                  FilteredOrHighMed      154.92      (1.4%)      154.63      (1.3%)   -0.2% (  -2% -    2%) 0.649
                 FilteredOrHighHigh       67.99      (1.9%)       67.86      (1.5%)   -0.2% (  -3% -    3%) 0.729
                 FilteredAndHighMed      130.42      (3.9%)      130.24      (3.4%)   -0.1% (  -7% -    7%) 0.902
                       FilteredTerm      159.19      (2.3%)      158.98      (1.9%)   -0.1% (  -4% -    4%) 0.843
         FilteredOr2Terms2StopWords      147.78      (1.6%)      147.61      (1.4%)   -0.1% (  -3% -    2%) 0.808
                  FilteredAnd3Terms      188.72      (3.1%)      188.51      (2.5%)   -0.1% (  -5% -    5%) 0.898
             CountFilteredOrHighMed      116.44      (0.8%)      116.33      (0.9%)   -0.1% (  -1% -    1%) 0.747
                   DismaxOrHighHigh      116.55      (2.9%)      116.47      (2.3%)   -0.1% (  -5% -    5%) 0.934
                    AndHighOrMedMed       46.65      (1.7%)       46.62      (1.7%)   -0.1% (  -3% -    3%) 0.899
            CountFilteredOrHighHigh      105.35      (1.1%)      105.29      (1.1%)   -0.1% (  -2% -    2%) 0.865
                   FilteredOr3Terms      162.57      (1.6%)      162.48      (1.7%)   -0.1% (  -3% -    3%) 0.911
                           PKLookup      281.03      (1.8%)      280.89      (1.9%)   -0.0% (  -3% -    3%) 0.933
                         TermDTSort      495.36      (2.2%)      495.17      (4.0%)   -0.0% (  -6% -    6%) 0.971
                    CountOrHighHigh      292.14      (2.8%)      292.22      (2.4%)    0.0% (  -5% -    5%) 0.973
                     FilteredOrMany       17.05      (3.1%)       17.05      (2.8%)    0.0% (  -5% -    6%) 0.971
                   CountAndHighHigh      296.50      (2.6%)      296.70      (2.1%)    0.1% (  -4% -    4%) 0.927
                        AndHighHigh       44.75      (1.8%)       44.79      (1.4%)    0.1% (  -3% -    3%) 0.837
                        CountOrMany       29.03      (3.0%)       29.07      (2.7%)    0.1% (  -5% -    5%) 0.904
                   AndMedOrHighHigh       66.08      (1.8%)       66.17      (1.7%)    0.1% (  -3% -    3%) 0.818
                FilteredAndHighHigh       70.30      (2.3%)       70.39      (2.0%)    0.1% (  -4% -    4%) 0.844
                CountFilteredOrMany       25.26      (2.5%)       25.30      (2.1%)    0.2% (  -4% -    4%) 0.820
                        CountPhrase        4.16      (2.2%)        4.17      (2.6%)    0.2% (  -4% -    5%) 0.820
                 CombinedAndHighMed       55.64      (2.8%)       55.76      (2.5%)    0.2% (  -4% -    5%) 0.798
                CombinedAndHighHigh       15.06      (3.1%)       15.10      (2.6%)    0.3% (  -5% -    6%) 0.768
                FilteredOrStopWords       46.47      (2.7%)       46.62      (2.2%)    0.3% (  -4% -    5%) 0.674
                         DismaxTerm      542.19      (2.5%)      544.34      (2.7%)    0.4% (  -4% -    5%) 0.632
                       CombinedTerm       30.82      (2.4%)       30.96      (2.4%)    0.4% (  -4% -    5%) 0.570
                     FilteredPhrase       32.59      (1.9%)       32.75      (1.9%)    0.5% (  -3% -    4%) 0.438
                             OrMany       18.38      (5.9%)       18.48      (5.5%)    0.6% ( -10% -   12%) 0.752
                         OrHighRare      269.18      (5.5%)      271.82      (2.2%)    1.0% (  -6% -    9%) 0.455
                             Phrase       15.27      (6.7%)       15.43      (6.4%)    1.0% ( -11% -   15%) 0.618
                               Term      462.37      (3.2%)      467.21      (2.8%)    1.0% (  -4% -    7%) 0.273
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org