Skip to content

Implement ConstantScoreScorer#nextDocsAndScores #14772

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

HUSTERGS
Copy link
Contributor

Description

This try to implement ConstantScoreScorer#nextDocsAndScores

Copy link

This PR does not have an entry in lucene/CHANGES.txt. Consider adding one. If the PR doesn't need a changelog entry, then add the skip-changelog label to it and you will stop receiving this reminder on future updates to the PR.

@github-actions github-actions bot added this to the 10.3.0 milestone Jun 12, 2025
@HUSTERGS
Copy link
Contributor Author

HUSTERGS commented Jun 12, 2025

Luceneutil benchmark result with wikimediumall and taskCountPerCat=5:

 TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
                IntervalsOrdered       12.47      (4.1%)       12.28      (3.9%)   -1.5% (  -9% -    6%) 0.231
                 FilteredPrefix3      296.61      (5.0%)      292.17      (4.7%)   -1.5% ( -10% -    8%) 0.327
                        PKLookup      171.58      (4.6%)      169.69      (3.8%)   -1.1% (  -9% -    7%) 0.411
                      TermDTSort      137.37      (2.8%)      135.91      (2.8%)   -1.1% (  -6% -    4%) 0.226
                    FilteredTerm      181.86      (2.4%)      179.96      (1.9%)   -1.0% (  -5% -    3%) 0.124
                  FilteredIntNRQ      196.19      (4.0%)      194.37      (3.7%)   -0.9% (  -8% -    7%) 0.449
                 CountOrHighHigh      226.26      (3.2%)      224.41      (3.1%)   -0.8% (  -6% -    5%) 0.408
                            Term      718.76      (6.9%)      713.58      (7.3%)   -0.7% ( -13% -   14%) 0.748
                       TermB1M1P      719.49      (6.3%)      714.67      (6.6%)   -0.7% ( -12% -   13%) 0.742
                        SpanNear       12.70      (3.7%)       12.62      (3.8%)   -0.6% (  -7% -    7%) 0.606
                          OrMany       18.99      (6.8%)       18.90      (6.3%)   -0.5% ( -12% -   13%) 0.813
             CountFilteredIntNRQ      101.34      (2.7%)      100.85      (2.1%)   -0.5% (  -5% -    4%) 0.524
               FilteredOrHighMed      189.32      (2.4%)      188.60      (2.7%)   -0.4% (  -5% -    4%) 0.641
                   TermMonthSort     1143.56      (2.3%)     1139.58      (2.8%)   -0.3% (  -5% -    4%) 0.673
          CountFilteredOrHighMed      136.15      (1.8%)      135.69      (2.0%)   -0.3% (  -4% -    3%) 0.581
                         TermB1M      717.09      (7.5%)      714.71      (7.3%)   -0.3% ( -14% -   15%) 0.887
                       OrHighMed      258.86      (8.3%)      258.07      (7.8%)   -0.3% ( -15% -   17%) 0.905
                          IntSet      611.48      (2.6%)      609.89      (3.1%)   -0.3% (  -5% -    5%) 0.774
                          Phrase       26.91      (3.4%)       26.85      (4.3%)   -0.3% (  -7% -    7%) 0.836
     FilteredAnd2Terms2StopWords      257.13      (2.4%)      256.59      (2.4%)   -0.2% (  -4% -    4%) 0.783
                         Respell       41.56      (1.8%)       41.48      (1.8%)   -0.2% (  -3% -    3%) 0.716
               CombinedOrHighMed       92.43      (4.8%)       92.25      (5.0%)   -0.2% (  -9% -   10%) 0.901
                AndMedOrHighHigh       76.99      (3.8%)       76.85      (5.4%)   -0.2% (  -9% -    9%) 0.898
                          Fuzzy2       59.23      (1.6%)       59.13      (1.7%)   -0.2% (  -3% -    3%) 0.751
                      OrHighRare      169.59      (8.3%)      169.31      (6.4%)   -0.2% ( -13% -   15%) 0.944
             CountFilteredOrMany       27.62      (3.0%)       27.59      (3.2%)   -0.1% (  -6% -    6%) 0.896
                  CountOrHighMed      274.45      (4.2%)      274.33      (3.1%)   -0.0% (  -7% -    7%) 0.970
                         Term100      717.45      (6.9%)      717.23      (6.8%)   -0.0% ( -12% -   14%) 0.989
                 AndHighOrMedMed       69.90      (3.9%)       69.88      (4.9%)   -0.0% (  -8% -    9%) 0.983
                          Fuzzy1       65.81      (1.4%)       65.80      (2.1%)   -0.0% (  -3% -    3%) 0.978
                CountAndHighHigh      234.44      (5.0%)      234.40      (4.7%)   -0.0% (  -9% -   10%) 0.993
                     CountOrMany       27.42      (4.2%)       27.42      (3.4%)   -0.0% (  -7% -    7%) 0.996
                FilteredOr3Terms      126.31      (2.1%)      126.33      (2.0%)    0.0% (  -3% -    4%) 0.978
                 DismaxOrHighMed      195.76      (5.4%)      195.84      (5.4%)    0.0% ( -10% -   11%) 0.982
                        Wildcard      207.31      (3.7%)      207.50      (3.4%)    0.1% (  -6% -    7%) 0.934
                     CountPhrase       12.62      (4.5%)       12.63      (4.6%)    0.1% (  -8% -    9%) 0.935
                  FilteredPhrase       46.22      (2.3%)       46.27      (3.2%)    0.1% (  -5% -    5%) 0.888
                     AndHighHigh       76.14     (10.4%)       76.24      (9.7%)    0.1% ( -18% -   22%) 0.967
              FilteredOrHighHigh       68.07      (2.1%)       68.18      (2.0%)    0.2% (  -3% -    4%) 0.810
               FilteredAnd3Terms      347.50      (1.7%)      348.14      (1.9%)    0.2% (  -3% -    3%) 0.748
                        Or3Terms      200.48      (7.0%)      200.92      (7.0%)    0.2% ( -12% -   15%) 0.921
                 CountAndHighMed      304.82      (4.7%)      305.69      (4.5%)    0.3% (  -8% -    9%) 0.845
             And2Terms2StopWords      208.02      (4.9%)      208.68      (4.4%)    0.3% (  -8% -   10%) 0.832
                         Term10K      719.93      (7.9%)      722.40      (7.1%)    0.3% ( -13% -   16%) 0.884
                          Term1M      714.17      (7.1%)      716.71      (6.4%)    0.4% ( -12% -   14%) 0.867
                      DismaxTerm      889.12      (4.7%)      892.36      (5.0%)    0.4% (  -8% -   10%) 0.812
                       And3Terms      252.26      (4.8%)      253.25      (4.2%)    0.4% (  -8% -    9%) 0.785
      FilteredOr2Terms2StopWords      153.01      (1.6%)      153.64      (2.3%)    0.4% (  -3% -    4%) 0.504
         CountFilteredOrHighHigh      114.40      (3.0%)      114.93      (2.6%)    0.5% (  -4% -    6%) 0.598
             CountFilteredPhrase       47.87      (2.5%)       48.11      (3.8%)    0.5% (  -5% -    7%) 0.634
                   TermTitleSort       76.19      (3.7%)       76.60      (4.9%)    0.5% (  -7% -    9%) 0.696
                     OrStopWords       32.63     (10.7%)       32.87      (9.5%)    0.7% ( -17% -   23%) 0.816
               TermDayOfYearSort      170.55      (2.7%)      171.95      (2.9%)    0.8% (  -4% -    6%) 0.354
             FilteredOrStopWords       44.42      (4.5%)       44.79      (2.9%)    0.8% (  -6% -    8%) 0.488
              Or2Terms2StopWords      196.05      (5.5%)      197.75      (5.7%)    0.9% (  -9% -   12%) 0.626
                    CombinedTerm       49.08      (4.2%)       49.51      (5.0%)    0.9% (  -7% -   10%) 0.551
              CombinedOrHighHigh       23.78      (3.4%)       24.02      (3.4%)    1.0% (  -5% -    8%) 0.348
                      OrHighHigh       74.87      (8.9%)       75.65      (9.7%)    1.0% ( -16% -   21%) 0.725
                  FilteredOrMany       15.82      (2.5%)       16.00      (2.1%)    1.1% (  -3% -    5%) 0.133
                DismaxOrHighHigh      128.38      (6.7%)      129.93      (6.8%)    1.2% ( -11% -   15%) 0.574
                    SloppyPhrase        5.51      (6.7%)        5.58      (7.0%)    1.3% ( -11% -   16%) 0.557
                    AndStopWords       31.87      (9.3%)       32.30      (8.9%)    1.3% ( -15% -   21%) 0.645
             CombinedAndHighHigh       23.89      (3.5%)       24.22      (3.8%)    1.3% (  -5% -    9%) 0.247
                       CountTerm     4548.79      (4.2%)     4618.12      (4.9%)    1.5% (  -7% -   11%) 0.290
                      AndHighMed      203.41      (7.5%)      206.99      (7.3%)    1.8% ( -12% -   17%) 0.452
              FilteredAndHighMed      176.36      (2.4%)      179.51      (2.2%)    1.8% (  -2% -    6%) 0.016
                          IntNRQ      196.93      (2.7%)      200.73      (2.7%)    1.9% (  -3% -    7%) 0.023
                         Prefix3      352.41      (7.1%)      363.68      (4.7%)    3.2% (  -8% -   16%) 0.092
              CombinedAndHighMed       91.26      (4.1%)       94.66      (4.7%)    3.7% (  -4% -   13%) 0.008
            FilteredAndStopWords       48.60      (3.3%)       50.65      (5.0%)    4.2% (  -3% -   12%) 0.002
             FilteredAndHighHigh       62.96      (2.7%)       65.76      (2.5%)    4.4% (   0% -    9%) 0.000

@jpountz
Copy link
Contributor

jpountz commented Jun 13, 2025

Interesting. I don't believe that being able to use Arrays#fill helps much, but maybe the fact that this change helps reduce polymorphism does?

@HUSTERGS
Copy link
Contributor Author

Interesting. I don't believe that being able to use Arrays#fill helps much, but maybe the fact that this change helps reduce polymorphism does?

@jpountz Thanks for your reply! (apologies for late reply). Actually I'm not very sure what's the root cause of this performance gain, My previous thought is that this change can co-operate with other query which implemnts the nextDocsAndScores and reduce the score function calls. Anyway, I did another luceneutil wikimediumall and taskCountPerCat=5 based on 3064f4b2aac3526f5f5fe37a8798395511aabd46 (which is this pr checked out from) to confirm the result again:

                            TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
              CombinedOrHighHigh        6.46      (2.9%)        6.35      (4.0%)   -1.7% (  -8% -    5%) 0.124
               CombinedOrHighMed       24.82      (4.6%)       24.42      (7.2%)   -1.6% ( -12% -   10%) 0.405
                         Prefix3       94.43      (2.8%)       93.11      (3.9%)   -1.4% (  -7% -    5%) 0.195
                IntervalsOrdered        2.98      (2.7%)        2.94      (2.3%)   -1.4% (  -6% -    3%) 0.085
                   TermMonthSort     2333.34      (3.4%)     2303.15      (3.4%)   -1.3% (  -7% -    5%) 0.233
                 FilteredPrefix3       88.42      (3.0%)       87.33      (2.9%)   -1.2% (  -6% -    4%) 0.184
                          IntSet      389.99      (5.2%)      385.58      (4.7%)   -1.1% ( -10% -    9%) 0.470
               TermDayOfYearSort      343.29      (3.4%)      339.52      (3.6%)   -1.1% (  -7% -    6%) 0.321
                      TermDTSort      189.75      (4.9%)      187.77      (4.8%)   -1.0% ( -10% -    9%) 0.494
                       CountTerm     6236.56      (5.6%)     6180.21      (4.8%)   -0.9% ( -10% -   10%) 0.584
                 AndHighOrMedMed       17.22      (3.6%)       17.07      (3.3%)   -0.9% (  -7% -    6%) 0.421
                          IntNRQ       48.24      (2.4%)       47.83      (2.8%)   -0.8% (  -5% -    4%) 0.307
                  FilteredIntNRQ       47.76      (2.5%)       47.48      (2.7%)   -0.6% (  -5% -    4%) 0.467
                        Wildcard       56.24      (1.8%)       55.94      (2.9%)   -0.5% (  -5% -    4%) 0.480
                    CombinedTerm       13.58      (4.2%)       13.51      (4.2%)   -0.5% (  -8% -    8%) 0.721
                          OrMany        5.44      (4.9%)        5.42      (4.7%)   -0.3% (  -9% -    9%) 0.826
             CombinedAndHighHigh        6.40      (3.0%)        6.39      (3.6%)   -0.2% (  -6% -    6%) 0.834
                         Respell       43.41      (2.6%)       43.32      (3.0%)   -0.2% (  -5% -    5%) 0.817
                    FilteredTerm       84.14      (2.3%)       83.97      (2.7%)   -0.2% (  -5% -    4%) 0.802
             CountFilteredIntNRQ       21.90      (1.7%)       21.86      (2.2%)   -0.2% (  -4% -    3%) 0.781
                     CountPhrase        3.22      (2.9%)        3.22      (3.8%)   -0.1% (  -6% -    6%) 0.909
                   TermTitleSort       63.89      (6.2%)       63.85      (6.8%)   -0.1% ( -12% -   13%) 0.977
                      OrHighHigh       25.06      (2.4%)       25.05      (2.3%)   -0.0% (  -4% -    4%) 0.964
                     OrStopWords        9.83      (6.1%)        9.84      (5.6%)    0.1% ( -11% -   12%) 0.969
                 CountOrHighHigh       62.03      (2.2%)       62.08      (2.3%)    0.1% (  -4% -    4%) 0.907
                  CountOrHighMed       93.40      (2.4%)       93.54      (2.5%)    0.2% (  -4% -    5%) 0.845
                 DismaxOrHighMed       63.11      (2.0%)       63.21      (2.7%)    0.2% (  -4% -    4%) 0.820
                          Fuzzy1       49.35      (3.2%)       49.43      (3.9%)    0.2% (  -6% -    7%) 0.881
             CountFilteredOrMany        5.94      (2.3%)        5.95      (2.4%)    0.2% (  -4% -    4%) 0.799
                        SpanNear        3.05      (4.8%)        3.06      (4.7%)    0.2% (  -8% -   10%) 0.896
                DismaxOrHighHigh       44.54      (2.8%)       44.64      (2.5%)    0.2% (  -4% -    5%) 0.794
                          Term1M      564.76      (3.8%)      566.06      (3.2%)    0.2% (  -6% -    7%) 0.835
                       OrHighMed       86.90      (2.3%)       87.10      (2.2%)    0.2% (  -4% -    4%) 0.743
         CountFilteredOrHighHigh       24.82      (1.4%)       24.88      (1.2%)    0.2% (  -2% -    2%) 0.549
                            Term      564.57      (3.8%)      566.04      (3.2%)    0.3% (  -6% -    7%) 0.816
                      AndHighMed       66.11      (1.5%)       66.28      (1.6%)    0.3% (  -2% -    3%) 0.592
                     CountOrMany        5.96      (3.5%)        5.97      (4.1%)    0.3% (  -7% -    8%) 0.825
                CountAndHighHigh       60.53      (2.2%)       60.70      (2.1%)    0.3% (  -3% -    4%) 0.685
          CountFilteredOrHighMed       29.11      (1.3%)       29.19      (1.4%)    0.3% (  -2% -    3%) 0.484
              FilteredOrHighHigh       17.45      (2.1%)       17.51      (1.7%)    0.3% (  -3% -    4%) 0.614
                      DismaxTerm      602.63      (2.9%)      604.59      (2.2%)    0.3% (  -4% -    5%) 0.689
                  FilteredOrMany        4.96      (2.3%)        4.97      (2.5%)    0.3% (  -4% -    5%) 0.655
                        Or3Terms       75.91      (3.6%)       76.17      (3.2%)    0.3% (  -6% -    7%) 0.748
                          Phrase        9.48      (3.5%)        9.51      (2.3%)    0.4% (  -5% -    6%) 0.707
                 CountAndHighMed       91.03      (2.7%)       91.37      (2.6%)    0.4% (  -4% -    5%) 0.661
                     AndHighHigh       26.15      (3.2%)       26.24      (3.3%)    0.4% (  -5% -    7%) 0.721
                         Term100      564.35      (4.0%)      566.60      (3.1%)    0.4% (  -6% -    7%) 0.725
                FilteredOr3Terms       57.08      (2.1%)       57.32      (2.4%)    0.4% (  -4% -    5%) 0.548
                         Term10K      564.11      (3.7%)      566.57      (3.2%)    0.4% (  -6% -    7%) 0.693
                    AndStopWords        9.03      (5.3%)        9.07      (4.6%)    0.4% (  -9% -   10%) 0.775
                          Fuzzy2       44.51      (2.9%)       44.71      (3.7%)    0.5% (  -5% -    7%) 0.665
             CountFilteredPhrase       11.37      (2.9%)       11.42      (3.3%)    0.5% (  -5% -    6%) 0.631
              CombinedAndHighMed       24.50      (4.8%)       24.62      (7.5%)    0.5% ( -11% -   13%) 0.813
                  FilteredPhrase       12.18      (2.0%)       12.24      (2.0%)    0.5% (  -3% -    4%) 0.449
                       TermB1M1P      564.34      (3.9%)      567.28      (3.2%)    0.5% (  -6% -    7%) 0.643
                    SloppyPhrase        1.50      (3.9%)        1.51      (3.7%)    0.5% (  -6% -    8%) 0.667
                AndMedOrHighHigh       20.39      (1.4%)       20.50      (2.1%)    0.6% (  -2% -    4%) 0.320
              Or2Terms2StopWords       72.02      (5.1%)       72.42      (4.9%)    0.6% (  -8% -   11%) 0.721
      FilteredOr2Terms2StopWords       63.56      (2.9%)       63.95      (3.2%)    0.6% (  -5% -    6%) 0.525
                         TermB1M      563.43      (4.0%)      566.92      (3.3%)    0.6% (  -6% -    8%) 0.594
             FilteredOrStopWords       10.68      (2.2%)       10.76      (1.4%)    0.7% (  -2% -    4%) 0.238
               FilteredOrHighMed       51.48      (2.9%)       51.87      (3.2%)    0.8% (  -5% -    7%) 0.431
     FilteredAnd2Terms2StopWords       71.38      (4.7%)       71.95      (4.5%)    0.8% (  -8% -   10%) 0.585
                       And3Terms       83.40      (3.9%)       84.07      (3.4%)    0.8% (  -6% -    8%) 0.487
             And2Terms2StopWords       69.70      (6.0%)       70.27      (5.5%)    0.8% (  -9% -   13%) 0.651
               FilteredAnd3Terms      126.57      (3.0%)      127.78      (3.2%)    1.0% (  -5% -    7%) 0.324
                      OrHighRare      115.81      (6.0%)      117.21      (4.4%)    1.2% (  -8% -   12%) 0.465
              FilteredAndHighMed       41.51      (2.1%)       42.89      (2.3%)    3.3% (  -1% -    7%) 0.000
            FilteredAndStopWords       11.02      (2.2%)       11.50      (2.3%)    4.4% (   0% -    9%) 0.000
             FilteredAndHighHigh       13.88      (2.1%)       14.62      (2.0%)    5.3% (   1% -    9%) 0.000

@gf2121
Copy link
Contributor

gf2121 commented Jun 16, 2025

Thanks for contribution, it's a nice speedup!

I don't believe that being able to use Arrays#fill helps much, but maybe the fact that this change helps reduce polymorphism does?

I wonder if we can benchmark the following implementation to confirm the source of speedup?

@Override
public void nextDocsAndScores(int upTo, Bits liveDocs, DocAndFloatFeatureBuffer buffer)
    throws IOException {
  int batchSize = 64;
  buffer.growNoCopy(batchSize);
  int size = 0;
  DocIdSetIterator iterator = iterator();
  for (int doc = iterator.docID(); doc < upTo && size < batchSize; doc = iterator.nextDoc()) {
    if (liveDocs == null || liveDocs.get(doc)) {
      buffer.docs[size] = doc;
      buffer.scores[size] = score;
      ++size;
    }
  }
  buffer.size = size;
}

@HUSTERGS
Copy link
Contributor Author

@gf2121 Thanks for your suggestion!

I wonder if we can benchmark the following implementation to confirm the source of speedup?

I'v done the benchmark according to your suggestion, here is the result under identical setup

 TaskQPS baseline      StdDevQPS my_modified_version      StdDev                Pct diff p-value
              CombinedOrHighHigh        6.43      (3.1%)        6.33      (3.5%)   -1.6% (  -7% -    5%) 0.136
                       CountTerm     6286.39      (5.1%)     6202.67      (5.0%)   -1.3% ( -10% -    9%) 0.403
                    SloppyPhrase        1.48      (6.1%)        1.46      (6.1%)   -1.3% ( -12% -   11%) 0.504
                          IntSet      391.57      (4.3%)      386.72      (3.6%)   -1.2% (  -8% -    6%) 0.324
                      TermDTSort      191.55      (4.3%)      189.30      (4.1%)   -1.2% (  -9% -    7%) 0.374
                         Respell       43.91      (3.4%)       43.40      (2.6%)   -1.2% (  -6% -    4%) 0.224
                    CombinedTerm       13.53      (2.9%)       13.38      (4.6%)   -1.2% (  -8% -    6%) 0.341
               CombinedOrHighMed       24.60      (4.4%)       24.37      (5.7%)   -0.9% ( -10% -    9%) 0.572
                         Prefix3       96.37      (3.2%)       95.64      (3.6%)   -0.8% (  -7% -    6%) 0.481
                          Fuzzy2       44.58      (3.3%)       44.26      (3.9%)   -0.7% (  -7% -    6%) 0.533
                 FilteredPrefix3       89.75      (3.5%)       89.18      (3.5%)   -0.6% (  -7% -    6%) 0.567
                      DismaxTerm      597.24      (4.8%)      593.46      (4.1%)   -0.6% (  -9% -    8%) 0.653
                          IntNRQ       48.68      (2.1%)       48.38      (1.9%)   -0.6% (  -4% -    3%) 0.334
                  FilteredIntNRQ       48.35      (1.9%)       48.08      (1.9%)   -0.6% (  -4% -    3%) 0.358
                   TermMonthSort     2333.01      (2.7%)     2321.17      (3.3%)   -0.5% (  -6% -    5%) 0.597
                     AndHighHigh       25.77      (9.5%)       25.64      (9.0%)   -0.5% ( -17% -   19%) 0.868
                          Fuzzy1       49.14      (3.4%)       48.95      (3.9%)   -0.4% (  -7% -    7%) 0.730
                            Term      553.88      (7.3%)      551.72      (6.4%)   -0.4% ( -13% -   14%) 0.857
                      OrHighRare      111.67      (7.0%)      111.30      (6.9%)   -0.3% ( -13% -   14%) 0.879
      FilteredOr2Terms2StopWords       63.72      (2.6%)       63.51      (2.9%)   -0.3% (  -5% -    5%) 0.709
                     CountOrMany        5.91      (3.2%)        5.89      (3.5%)   -0.3% (  -6% -    6%) 0.765
                         TermB1M      553.86      (7.2%)      552.13      (6.4%)   -0.3% ( -12% -   14%) 0.885
                DismaxOrHighHigh       43.53      (5.5%)       43.40      (5.5%)   -0.3% ( -10% -   11%) 0.861
                      AndHighMed       64.98      (7.8%)       64.78      (8.1%)   -0.3% ( -14% -   16%) 0.904
                 DismaxOrHighMed       62.12      (4.6%)       61.94      (5.5%)   -0.3% (  -9% -   10%) 0.850
                          OrMany        5.32      (6.5%)        5.30      (8.1%)   -0.3% ( -13% -   15%) 0.902
              FilteredOrHighHigh       17.39      (1.8%)       17.35      (2.0%)   -0.2% (  -3% -    3%) 0.692
                   TermTitleSort       62.78      (6.8%)       62.63      (6.3%)   -0.2% ( -12% -   13%) 0.908
               FilteredAnd3Terms      126.50      (2.5%)      126.23      (3.0%)   -0.2% (  -5% -    5%) 0.813
             FilteredOrStopWords       10.63      (1.7%)       10.61      (2.3%)   -0.2% (  -4% -    3%) 0.764
                       TermB1M1P      552.80      (7.2%)      551.81      (6.4%)   -0.2% ( -12% -   14%) 0.934
                CountAndHighHigh       60.70      (1.4%)       60.60      (2.5%)   -0.2% (  -4% -    3%) 0.797
                FilteredOr3Terms       57.09      (1.9%)       57.00      (2.2%)   -0.2% (  -4% -    3%) 0.809
                         Term10K      553.61      (7.4%)      552.84      (6.5%)   -0.1% ( -13% -   14%) 0.950
                      OrHighHigh       24.40      (9.2%)       24.36      (8.5%)   -0.1% ( -16% -   19%) 0.961
             CountFilteredPhrase       11.39      (3.0%)       11.38      (3.7%)   -0.1% (  -6% -    6%) 0.942
                    FilteredTerm       83.08      (2.2%)       83.02      (2.7%)   -0.1% (  -4% -    4%) 0.922
               FilteredOrHighMed       51.44      (2.4%)       51.42      (2.7%)   -0.0% (  -5% -    5%) 0.957
               TermDayOfYearSort      340.99      (2.7%)      340.87      (2.8%)   -0.0% (  -5% -    5%) 0.967
                        SpanNear        3.07      (4.1%)        3.07      (4.1%)   -0.0% (  -7% -    8%) 0.978
                IntervalsOrdered        2.96      (3.1%)        2.96      (3.3%)   -0.0% (  -6% -    6%) 0.974
                AndMedOrHighHigh       20.23      (3.5%)       20.23      (3.6%)   -0.0% (  -6% -    7%) 0.978
                          Term1M      552.05      (7.1%)      552.08      (6.4%)    0.0% ( -12% -   14%) 0.998
             CombinedAndHighHigh        6.38      (3.3%)        6.38      (4.5%)    0.1% (  -7% -    8%) 0.946
                 CountOrHighHigh       61.87      (1.7%)       61.93      (2.8%)    0.1% (  -4% -    4%) 0.899
                  FilteredOrMany        4.95      (2.3%)        4.96      (1.9%)    0.1% (  -3% -    4%) 0.880
                       OrHighMed       84.47      (7.9%)       84.58      (8.7%)    0.1% ( -15% -   18%) 0.961
                         Term100      552.55      (7.2%)      553.36      (6.5%)    0.1% ( -12% -   14%) 0.946
                          Phrase        9.44      (3.6%)        9.46      (4.3%)    0.1% (  -7% -    8%) 0.905
                  CountOrHighMed       92.93      (2.0%)       93.08      (1.9%)    0.2% (  -3% -    4%) 0.790
                  FilteredPhrase       12.25      (2.5%)       12.27      (2.8%)    0.2% (  -4% -    5%) 0.830
                 CountAndHighMed       90.33      (2.7%)       90.50      (1.9%)    0.2% (  -4% -    4%) 0.794
             CountFilteredOrMany        5.98      (1.7%)        5.99      (2.7%)    0.2% (  -4% -    4%) 0.787
     FilteredAnd2Terms2StopWords       70.18      (4.2%)       70.32      (5.9%)    0.2% (  -9% -   10%) 0.900
         CountFilteredOrHighHigh       25.00      (1.7%)       25.07      (2.1%)    0.3% (  -3% -    4%) 0.634
          CountFilteredOrHighMed       29.34      (1.8%)       29.44      (2.2%)    0.3% (  -3% -    4%) 0.581
             CountFilteredIntNRQ       22.12      (1.7%)       22.20      (2.0%)    0.4% (  -3% -    4%) 0.530
                    AndStopWords        8.83      (9.5%)        8.87      (8.0%)    0.4% ( -15% -   19%) 0.882
                        Wildcard       57.13      (3.9%)       57.40      (3.5%)    0.5% (  -6% -    8%) 0.693
                     CountPhrase        3.18      (4.2%)        3.20      (3.9%)    0.5% (  -7% -    8%) 0.693
                        Or3Terms       73.37      (7.4%)       73.76      (8.3%)    0.5% ( -14% -   17%) 0.834
                     OrStopWords        9.49     (10.6%)        9.54      (9.0%)    0.5% ( -17% -   22%) 0.864
                       And3Terms       81.37      (6.8%)       81.81      (7.6%)    0.5% ( -12% -   16%) 0.814
             And2Terms2StopWords       67.89      (5.9%)       68.28      (8.0%)    0.6% ( -12% -   15%) 0.798
                 AndHighOrMedMed       17.05      (4.0%)       17.16      (3.9%)    0.6% (  -6% -    8%) 0.606
              Or2Terms2StopWords       69.58      (6.0%)       70.17      (7.9%)    0.8% ( -12% -   15%) 0.706
              CombinedAndHighMed       24.31      (5.5%)       24.53      (6.9%)    0.9% ( -10% -   14%) 0.659
              FilteredAndHighMed       41.19      (2.8%)       42.41      (3.5%)    3.0% (  -3% -    9%) 0.003
            FilteredAndStopWords       11.05      (2.2%)       11.54      (2.4%)    4.4% (   0% -    9%) 0.000
             FilteredAndHighHigh       13.89      (2.1%)       14.62      (2.1%)    5.3% (   1% -    9%) 0.000

The result shows a same speedup!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants