[ https://issues.apache.org/jira/browse/LUCENE-3390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Uwe Schindler reopened LUCENE-3390: ----------------------------------- There is a bug in this impl: If you have two different SortFields with different missing values and you do sorts on both in parallel, the setNextReader in the comparator modifies the shared field cache, leading to concurrency issues. I dont understand why this is done in setNextReader? Why not do the Bits check in the comparator itsself instead of merging the missing values directly into the field cache, which is a violation to multithreading, caching,... Also doing the merging of missing values into the cache on every setNextReader seems like lots of additional work on every sort. We should do the check for the missing value directly in the compare/compareBottom method (like we do on trunk). > Incorrect sort by Numeric values for documents missing the sorting field > ------------------------------------------------------------------------ > > Key: LUCENE-3390 > URL: https://issues.apache.org/jira/browse/LUCENE-3390 > Project: Lucene - Java > Issue Type: Bug > Components: core/search > Affects Versions: 3.3 > Reporter: Gilad Barkai > Assignee: Doron Cohen > Priority: Minor > Labels: double, float, int, long, numeric, sort > Fix For: 3.4 > > Attachments: LUCENE-3390.patch, SortByDouble.java > > > While sorting results over a numeric field, documents which do not contain a > value for the sorting field seem to get 0 (ZERO) value in the sort. (Tested > against Double, Float, Int & Long numeric fields ascending and descending > order). > This behavior is unexpected, as zero is "comparable" to the rest of the > values. A better solution would either be allowing the user to define such a > "non-value" default, or always bring those document results as the last ones. > Example scenario: > Adding 3 documents, 1st with value 3.5d, 2nd with -10d, and 3rd without any > value. > Searching with MatchAllDocsQuery, with sort over that field in descending > order yields the docid results of 0, 2, 1. > Asking for the top 2 documents brings the document without any value as the > 2nd result - which seems as a bug? -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org