You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Tobias Ibounig <t....@netconomy.net> on 2019/01/22 09:13:49 UTC

Multiplicative Boosts broken since 7.3 (LUCENE-8099)

Hello,

As described in https://issues.apache.org/jira/browse/SOLR-13126 multiplicative boots (in certain conditions) seem to be broken since 7.3.
The error seems to be introduced in https://issues.apache.org/jira/browse/LUCENE-8099. Reverting the SOLR parts to the now deprecated BoostingQuery again fixes the issue.
The filed issue contains a test case and a patch with the revert (for testing purposes, not really a clean fix).
We sadly couldn't find the actual issue, which seems to lie with the use of "FunctionScoreQuery" for boosting.

We were able to patch our 7.5 installation with the patch. As others might be affected as well, we hope this can be helpful in resolving this bug.

To all SOLR/Lucene developers, thank you for your work. Looking trough the code base gave me a new appreciation of your work.

Best Regards,
Tobias

PS: This issue was already posted by a colleague, "Inconsistent debugQuery score with multiplicative boost", but I wanted to create a new post with a clearer title.


Re: Multiplicative Boosts broken since 7.3 (LUCENE-8099)

Posted by Mikhail Khludnev <mk...@apache.org>.
Here's the fix proposal is attached
https://issues.apache.org/jira/browse/SOLR-13126 appreciate reviews and
opinions.
I can push it quite soon if there's no veto.

On Wed, Feb 13, 2019 at 9:59 PM Burgmans, Tom <
Tom.Burgmans@wolterskluwer.com> wrote:

> I like to bump this issue up, since this is a showstopper for us to
> upgrade from Solr 6. In https://issues.apache.org/jira/browse/SOLR-13126
> I described a couple of more use cases in which this bug appears. We see
> different scores in the EXPLAIN compared to the actual scores and our
> analysis is that the EXPLAIN in fact is correct. It happens when a
> multiplicative boost is used (via the "boost" parameter) in combination
> with some function queries, like "query" and "field".
>
> One example (tested on Solr 7.5.0), when running:
>
> http://localhost:8983/solr/test/select?defType=edismax&fl=id,score,[explain
> style=text]&q=*:*&boost=sum(field(price),4)
>
> then the expectation is that a document that doesn't have the price field
> gets a score of 4. The result however is:
>
> {
>     "id": "docid123576",
>     "score": 1.0,
>     "[explain]": "4.0 = product of:\n  1.0 = boost\n  4.0 = product of:\n
>   1.0 = *:*\n    4.0 = sum(float(price)=0.0,const(4))\n"
> }
>
> EXPLAIN and score are not consistent.
>
> Best regards Tom
>
>
> -----Original Message-----
> From: Tobias Ibounig [mailto:t.ibounig@netconomy.net]
> Sent: dinsdag 22 januari 2019 10:14
> To: solr-user@lucene.apache.org
> Subject: Multiplicative Boosts broken since 7.3 (LUCENE-8099)
>
> Hello,
>
> As described in
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FSOLR-13126&amp;data=02%7C01%7Ctom.burgmans%40wolterskluwer.com%7C82b7f7923bd74285295e08d68049f3da%7C8ac76c91e7f141ffa89c3553b2da2c17%7C0%7C0%7C636837452448856240&amp;sdata=paFEStnQwxcKQQ9mM1MfPXQm%2BrStTaqQnYFH2LolVl8%3D&amp;reserved=0
> multiplicative boots (in certain conditions) seem to be broken since 7.3.
> The error seems to be introduced in
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FLUCENE-8099&amp;data=02%7C01%7Ctom.burgmans%40wolterskluwer.com%7C82b7f7923bd74285295e08d68049f3da%7C8ac76c91e7f141ffa89c3553b2da2c17%7C0%7C0%7C636837452448856240&amp;sdata=Gs1EzQ%2FCSO8ryZJv0EGx2etxmDA7HkW8Crj5H6mE%2FvE%3D&amp;reserved=0.
> Reverting the SOLR parts to the now deprecated BoostingQuery again fixes
> the issue.
> The filed issue contains a test case and a patch with the revert (for
> testing purposes, not really a clean fix).
> We sadly couldn't find the actual issue, which seems to lie with the use
> of "FunctionScoreQuery" for boosting.
>
> We were able to patch our 7.5 installation with the patch. As others might
> be affected as well, we hope this can be helpful in resolving this bug.
>
> To all SOLR/Lucene developers, thank you for your work. Looking trough the
> code base gave me a new appreciation of your work.
>
> Best Regards,
> Tobias
>
> PS: This issue was already posted by a colleague, "Inconsistent debugQuery
> score with multiplicative boost", but I wanted to create a new post with a
> clearer title.
>
>

-- 
Sincerely yours
Mikhail Khludnev

Re: Multiplicative Boosts broken since 7.3 (LUCENE-8099)

Posted by Mikhail Khludnev <mk...@apache.org>.
Here's the fix proposal is attached
https://issues.apache.org/jira/browse/SOLR-13126 appreciate reviews and
opinions.
I can push it quite soon if there's no veto.

On Wed, Feb 13, 2019 at 9:59 PM Burgmans, Tom <
Tom.Burgmans@wolterskluwer.com> wrote:

> I like to bump this issue up, since this is a showstopper for us to
> upgrade from Solr 6. In https://issues.apache.org/jira/browse/SOLR-13126
> I described a couple of more use cases in which this bug appears. We see
> different scores in the EXPLAIN compared to the actual scores and our
> analysis is that the EXPLAIN in fact is correct. It happens when a
> multiplicative boost is used (via the "boost" parameter) in combination
> with some function queries, like "query" and "field".
>
> One example (tested on Solr 7.5.0), when running:
>
> http://localhost:8983/solr/test/select?defType=edismax&fl=id,score,[explain
> style=text]&q=*:*&boost=sum(field(price),4)
>
> then the expectation is that a document that doesn't have the price field
> gets a score of 4. The result however is:
>
> {
>     "id": "docid123576",
>     "score": 1.0,
>     "[explain]": "4.0 = product of:\n  1.0 = boost\n  4.0 = product of:\n
>   1.0 = *:*\n    4.0 = sum(float(price)=0.0,const(4))\n"
> }
>
> EXPLAIN and score are not consistent.
>
> Best regards Tom
>
>
> -----Original Message-----
> From: Tobias Ibounig [mailto:t.ibounig@netconomy.net]
> Sent: dinsdag 22 januari 2019 10:14
> To: solr-user@lucene.apache.org
> Subject: Multiplicative Boosts broken since 7.3 (LUCENE-8099)
>
> Hello,
>
> As described in
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FSOLR-13126&amp;data=02%7C01%7Ctom.burgmans%40wolterskluwer.com%7C82b7f7923bd74285295e08d68049f3da%7C8ac76c91e7f141ffa89c3553b2da2c17%7C0%7C0%7C636837452448856240&amp;sdata=paFEStnQwxcKQQ9mM1MfPXQm%2BrStTaqQnYFH2LolVl8%3D&amp;reserved=0
> multiplicative boots (in certain conditions) seem to be broken since 7.3.
> The error seems to be introduced in
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FLUCENE-8099&amp;data=02%7C01%7Ctom.burgmans%40wolterskluwer.com%7C82b7f7923bd74285295e08d68049f3da%7C8ac76c91e7f141ffa89c3553b2da2c17%7C0%7C0%7C636837452448856240&amp;sdata=Gs1EzQ%2FCSO8ryZJv0EGx2etxmDA7HkW8Crj5H6mE%2FvE%3D&amp;reserved=0.
> Reverting the SOLR parts to the now deprecated BoostingQuery again fixes
> the issue.
> The filed issue contains a test case and a patch with the revert (for
> testing purposes, not really a clean fix).
> We sadly couldn't find the actual issue, which seems to lie with the use
> of "FunctionScoreQuery" for boosting.
>
> We were able to patch our 7.5 installation with the patch. As others might
> be affected as well, we hope this can be helpful in resolving this bug.
>
> To all SOLR/Lucene developers, thank you for your work. Looking trough the
> code base gave me a new appreciation of your work.
>
> Best Regards,
> Tobias
>
> PS: This issue was already posted by a colleague, "Inconsistent debugQuery
> score with multiplicative boost", but I wanted to create a new post with a
> clearer title.
>
>

-- 
Sincerely yours
Mikhail Khludnev

RE: Multiplicative Boosts broken since 7.3 (LUCENE-8099)

Posted by "Burgmans, Tom" <To...@wolterskluwer.com>.
I like to bump this issue up, since this is a showstopper for us to upgrade from Solr 6. In https://issues.apache.org/jira/browse/SOLR-13126 I described a couple of more use cases in which this bug appears. We see different scores in the EXPLAIN compared to the actual scores and our analysis is that the EXPLAIN in fact is correct. It happens when a multiplicative boost is used (via the "boost" parameter) in combination with some function queries, like "query" and "field". 

One example (tested on Solr 7.5.0), when running: 

http://localhost:8983/solr/test/select?defType=edismax&fl=id,score,[explain style=text]&q=*:*&boost=sum(field(price),4)

then the expectation is that a document that doesn't have the price field gets a score of 4. The result however is: 

{
    "id": "docid123576",
    "score": 1.0,
    "[explain]": "4.0 = product of:\n  1.0 = boost\n  4.0 = product of:\n    1.0 = *:*\n    4.0 = sum(float(price)=0.0,const(4))\n"
}

EXPLAIN and score are not consistent.

Best regards Tom


-----Original Message-----
From: Tobias Ibounig [mailto:t.ibounig@netconomy.net] 
Sent: dinsdag 22 januari 2019 10:14
To: solr-user@lucene.apache.org
Subject: Multiplicative Boosts broken since 7.3 (LUCENE-8099)

Hello,

As described in https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FSOLR-13126&amp;data=02%7C01%7Ctom.burgmans%40wolterskluwer.com%7C82b7f7923bd74285295e08d68049f3da%7C8ac76c91e7f141ffa89c3553b2da2c17%7C0%7C0%7C636837452448856240&amp;sdata=paFEStnQwxcKQQ9mM1MfPXQm%2BrStTaqQnYFH2LolVl8%3D&amp;reserved=0 multiplicative boots (in certain conditions) seem to be broken since 7.3.
The error seems to be introduced in https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FLUCENE-8099&amp;data=02%7C01%7Ctom.burgmans%40wolterskluwer.com%7C82b7f7923bd74285295e08d68049f3da%7C8ac76c91e7f141ffa89c3553b2da2c17%7C0%7C0%7C636837452448856240&amp;sdata=Gs1EzQ%2FCSO8ryZJv0EGx2etxmDA7HkW8Crj5H6mE%2FvE%3D&amp;reserved=0. Reverting the SOLR parts to the now deprecated BoostingQuery again fixes the issue.
The filed issue contains a test case and a patch with the revert (for testing purposes, not really a clean fix).
We sadly couldn't find the actual issue, which seems to lie with the use of "FunctionScoreQuery" for boosting.

We were able to patch our 7.5 installation with the patch. As others might be affected as well, we hope this can be helpful in resolving this bug.

To all SOLR/Lucene developers, thank you for your work. Looking trough the code base gave me a new appreciation of your work.

Best Regards,
Tobias

PS: This issue was already posted by a colleague, "Inconsistent debugQuery score with multiplicative boost", but I wanted to create a new post with a clearer title.