Will Currie created SOLR-12407:
----------------------------------

             Summary: edismax boost performance regression from deprecating 
BoostedQuery
                 Key: SOLR-12407
                 URL: https://issues.apache.org/jira/browse/SOLR-12407
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
    Affects Versions: 7.3
            Reporter: Will Currie
         Attachments: restore-boosted-query.patch

I'm seeing ~50% increase in query response time after upgrading from 7.2 to 7.3 
(600ms to 900ms). My queries use an edismax boost something like:
{noformat}
if(termfreq(type,"A"),product(map(field1,3,3,1.5,1),map(field1,4,4,1.9,1),if(def(field2,false),product(map(field1,1,1,0.6,1),map(field1,2,2,0.7,1),if(not(exists(field1)),0.6,1),map(field3,0,0,1.3,1)),product(map(field1,1,1,0.7,1),map(field1,2,2,1.1,1),if(not(exists(field1)),0.90,1),map(field3,0,0,1.50,1)))),1){noformat}
This boost is likely (surely?) suboptimal but LUCENE-8099 appears to have 
introduced this performance regression (poured proverbial oil on my smouldering 
fire). If I change ExtendedDismaxQParser back to using the deprecated 
BoostedQuery I get the 600ms solr 7.2 response time back.

It appears FunctionScoreQuery invokes the boost function twice for each 
document. Once with a call to 
[exists()|https://github.com/apache/lucene-solr/blob/03afeb7766a39996de3c85e8a6ab24d2a352dd1c/lucene/queries/src/java/org/apache/lucene/queries/function/ValueSource.java#L150]
 from 
[advanceExact()|https://github.com/apache/lucene-solr/blob/42154387d4f2a6060da09c4236e2a8dbb575c59e/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionScoreQuery.java#L170],
 then a second time from the call chain following scores.doubleValue().

I don't know if that's the cause of the slowdown but I'm definitely seeing a 
slowdown that disappears when I revert part of LUCENE-8099.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to