[ 
https://issues.apache.org/jira/browse/SOLR-6168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14040472#comment-14040472
 ] 

Umesh Prasad commented on SOLR-6168:
------------------------------------

Okay .. Here is my first attempt at this ..   I am attaching this for comments 
if I am going in right direction 

Changes
1. Added two more implementations of FieldValueCollapse  
    ScoreValueCollapse for collapsing on score
   StringValueCollapse for collapsing on global string ords.
2. Implemented CompositeValueCollapse, 
     It gets sorts params and creates an array of FieldValueCollapse , which it 
calls in sequence.
3. collapse,  returns NEXT_ACTION which can take ALIGN, BREAK or CONTINUE and 
is used by CompositiveValueCollapse to enable stable sort.
4.  Added updateOrd(int ord, int contextDoc, int globalDoc) ,so that composite 
collapse can use to update its constituent ords.

The test cases pass mostly. However code is quite hacked as of now and there 
are no tests for testing sorting on string. Sharing of ords[]/scores[] between 
the different instances of FieldValueCollapse breaks encapsulation. I think 
FieldValueCollapse can be better replaced with CollapasingComparator in line of 
FieldComparator ..



> CollapsingQParserPlugin ranks incorrectly when 3 or more sort params are used
> -----------------------------------------------------------------------------
>
>                 Key: SOLR-6168
>                 URL: https://issues.apache.org/jira/browse/SOLR-6168
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 4.7.1, 4.8.1
>            Reporter: Umesh Prasad
>            Assignee: Joel Bernstein
>         Attachments: CollapsingQParserPlugin-6168.patch.1-1stcut, 
> SOLR-6168-group-head-inconsistent-with-sort.patch
>
>
> CollapsingQParser Plugin ranks documents incorrectly when more than 2 sort 
> fields are used.
>    I have attached a test case, which demonstrates the broken behavior when 3 
> sort fields are used.
> The failing test case patch is against Lucene/Solr 4.8.1 revision  number 
> 1603061
> PS :     SOLR-5408 fixed the issue with sorting only for two sort fields, by 
> allowing one to specify max/min=<field-name>. However that requires 2nd sort 
> field to be a numeric field. It will not work with string field or function 
> query sort.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to