[ 
https://issues.apache.org/jira/browse/LUCENE-4396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14100492#comment-14100492
 ] 

Michael McCandless commented on LUCENE-4396:
--------------------------------------------

OK indeed I see effectively no perf diffs for the default tasks:

{noformat}


Report after iter 19:
                    Task    QPS base      StdDev    QPS comp      StdDev        
        Pct diff
                 LowTerm      159.50     (18.8%)      157.56     (17.0%)   
-1.2% ( -31% -   42%)
               LowPhrase        9.13      (2.3%)        9.10      (3.0%)   
-0.3% (  -5% -    5%)
              HighPhrase       22.96      (3.2%)       22.89      (4.0%)   
-0.3% (  -7% -    7%)
               MedPhrase       20.96      (2.6%)       20.91      (3.5%)   
-0.2% (  -6% -    6%)
         LowSloppyPhrase        9.01      (4.2%)        9.02      (4.3%)    
0.1% (  -8% -    8%)
                  Fuzzy1       34.93      (4.3%)       34.96      (5.2%)    
0.1% (  -9% -   10%)
                 Respell       23.59      (2.9%)       23.64      (2.9%)    
0.2% (  -5% -    6%)
         MedSloppyPhrase       27.69      (5.1%)       27.76      (4.8%)    
0.3% (  -9% -   10%)
        HighSloppyPhrase        6.39      (6.3%)        6.41      (6.4%)    
0.3% ( -11% -   13%)
              AndHighMed       39.17      (1.9%)       39.30      (2.1%)    
0.4% (  -3% -    4%)
                 MedTerm       76.73      (9.0%)       77.02      (8.6%)    
0.4% ( -15% -   19%)
             AndHighHigh       15.19      (1.6%)       15.26      (2.4%)    
0.4% (  -3% -    4%)
             MedSpanNear        4.14      (4.7%)        4.16      (5.7%)    
0.4% (  -9% -   11%)
            HighSpanNear        1.49      (3.3%)        1.50      (4.6%)    
0.5% (  -7% -    8%)
             LowSpanNear        8.60      (6.0%)        8.67      (7.5%)    
0.8% ( -11% -   15%)
                HighTerm       13.12      (8.6%)       13.24     (10.1%)    
0.9% ( -16% -   21%)
               OrHighMed       15.47      (6.3%)       15.62      (6.0%)    
0.9% ( -10% -   14%)
           OrNotHighHigh        8.61      (7.2%)        8.70      (6.9%)    
1.1% ( -12% -   16%)
            OrHighNotLow       26.60      (5.8%)       26.95      (5.9%)    
1.3% (  -9% -   13%)
            OrHighNotMed       14.53      (6.6%)       14.72      (6.1%)    
1.3% ( -10% -   15%)
               OrHighLow       12.25      (6.5%)       12.42      (6.9%)    
1.4% ( -11% -   15%)
           OrHighNotHigh        4.06      (7.3%)        4.12      (6.5%)    
1.4% ( -11% -   16%)
                 Prefix3       30.14      (3.5%)       30.58      (4.2%)    
1.4% (  -6% -    9%)
              OrHighHigh       18.13      (6.1%)       18.40      (6.1%)    
1.5% ( -10% -   14%)
            OrNotHighLow       14.43      (7.6%)       14.65      (7.6%)    
1.5% ( -12% -   18%)
                Wildcard       15.10      (4.2%)       15.34      (6.2%)    
1.6% (  -8% -   12%)
                  Fuzzy2       20.01      (4.0%)       20.39      (3.7%)    
1.9% (  -5% -   10%)
              AndHighLow      278.92      (3.2%)      284.79      (3.7%)    
2.1% (  -4% -    9%)
            OrNotHighMed        5.10      (7.8%)        5.22      (7.6%)    
2.2% ( -12% -   19%)
                  IntNRQ        1.63      (5.7%)        1.69     (10.3%)    
3.7% ( -11% -   20%)
{noformat}

I'll run with And.tasks next...

> BooleanScorer should sometimes be used for MUST clauses
> -------------------------------------------------------
>
>                 Key: LUCENE-4396
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4396
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Michael McCandless
>         Attachments: And.tasks, And.tasks, AndOr.tasks, AndOr.tasks, 
> LUCENE-4396-simple.patch, LUCENE-4396-simple.patch, LUCENE-4396-simple.patch, 
> LUCENE-4396-simple.patch, LUCENE-4396.patch, LUCENE-4396.patch, 
> LUCENE-4396.patch, LUCENE-4396.patch, LUCENE-4396.patch, LUCENE-4396.patch, 
> LUCENE-4396.patch, LUCENE-4396.patch, LUCENE-4396.patch, LUCENE-4396.patch, 
> LUCENE-4396.patch, LUCENE-4396.patch, LUCENE-4396.patch, LUCENE-4396.patch, 
> LUCENE-4396.patch, LUCENE-4396.patch, SIZE.perf, all.perf, 
> luceneutil-score-equal.patch, luceneutil-score-equal.patch, 
> merge-simple.perf, merge-simple.png, merge.perf, merge.png, perf.png, 
> stat.cpp, stat.cpp, tasks.cpp
>
>
> Today we only use BooleanScorer if the query consists of SHOULD and MUST_NOT.
> If there is one or more MUST clauses we always use BooleanScorer2.
> But I suspect that unless the MUST clauses have very low hit count compared 
> to the other clauses, that BooleanScorer would perform better than 
> BooleanScorer2.  BooleanScorer still has some vestiges from when it used to 
> handle MUST so it shouldn't be hard to bring back this capability ... I think 
> the challenging part might be the heuristics on when to use which (likely we 
> would have to use firstDocID as proxy for total hit count).
> Likely we should also have BooleanScorer sometimes use .advance() on the subs 
> in this case, eg if suddenly the MUST clause skips 1000000 docs then you want 
> to .advance() all the SHOULD clauses.
> I won't have near term time to work on this so feel free to take it if you 
> are inspired!



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to