On 04.01.19, 09:11, "Thomas Aglassinger" <t.aglassin...@netconomy.net> wrote:

>  When debugging a query using multiplicative boost based on the product() 
> function I noticed that the score computed in the explain section is correct 
> while the score in the actual result is wrong.
    
We digged into this further and seem to have found the culprit. 

The last working version is Solr 7.2.1. Using git bisect we found out that the 
issue got introduced with LUCENE-8099 (a refactoring). There's two changes that 
break the scoring in different ways:

    LUCENE-8099: Deprecate CustomScoreQuery, BoostedQuery, BoostingQuery
    LUCENE-8099: Replace BoostQParserPlugin.boostQuery() with 
FunctionScoreQuery.boostByValue()

Reverting parts of these changes to the previous version based on a deprecated 
class (which LUCENE-8099 clean up) seems to fix the issue.

We created a Solr issue to document our current findings and changes: 
https://issues.apache.org/jira/browse/SOLR-13126

It contains a patch for our experimental fix (which currently is in a rough 
state) and a test case that can reproduce the issue starting with Solr 7.3 up 
to the current master.

A proper fix of course would not revert to deprecated classes again but fix 
whatever went wrong during LUCENE-8099. 

Hopefully someone with a deeper understand of the mechanics behind can take a 
look into this.

Best regards, Thomas.


Reply via email to