[ 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.