You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-dev@lucene.apache.org by "Yonik Seeley (JIRA)" <ji...@apache.org> on 2010/02/21 16:55:27 UTC
[jira] Commented: (SOLR-1785) Handle +/-Inf, NaN when scoring
[ https://issues.apache.org/jira/browse/SOLR-1785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12836387#action_12836387 ]
Yonik Seeley commented on SOLR-1785:
------------------------------------
In Solr 1.3 and before, +-Inf were handled normally, and scores of NaN caused the relative ordering of other documents to be mixed up.
The new lucene collectors used in 1.4 can't all handle -Inf and NaN (they can return Integer.MAX_VAL to be returned as a docid), leading to exceptions as seen in SOLR-1778. Because of this Solr's function queries normalized their output to exclude -Inf and NaN. Unfortunately, this is not sufficient, because non-infinite scores can combine with a boolean query into an infinite score. And once you have an infinite score, a simple multiplication by zero will yield a NaN.
example: http://localhost:8983/solr/select?fl=id,score&q=_val_:"-3e38"+_val_:"-3e38"
Properly handing -Inf is an easy fix. The bigger question is how to handle NaN.
We could:
1) punt and realize that any NaNs will mess up the ordering of all other documents for that request
2) Move the FunctionQuery normalization that changes -Inf and NaN into -Float.MAX_VALUE to right before collection (probably with a wrapper collector). This would preserve the ordering of all the other documents, at the cost of a little performance, and information loss (the fact that there was a NaN or -Inf).
3) Completely order NaNs (probably after -Inf)... This keeps the most information, but would require implementing a custom comparator for score sorting (for anything other than a simple score desc).
> Handle +/-Inf, NaN when scoring
> --------------------------------
>
> Key: SOLR-1785
> URL: https://issues.apache.org/jira/browse/SOLR-1785
> Project: Solr
> Issue Type: Bug
> Affects Versions: 1.4
> Reporter: Yonik Seeley
> Fix For: 1.5
>
>
> Scores of -Inf or NaN being collected can cause exceptions.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.