You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2010/09/17 23:10:50 UTC

svn commit: r998326 - in /lucene/dev/trunk/solr/src/java/org/apache/solr: handler/component/QueryComponent.java search/SolrIndexSearcher.java

Author: yonik
Date: Fri Sep 17 21:10:50 2010
New Revision: 998326

URL: http://svn.apache.org/viewvc?rev=998326&view=rev
Log:
SOLR-236: simplify by using groupSort in base class

Modified:
    lucene/dev/trunk/solr/src/java/org/apache/solr/handler/component/QueryComponent.java
    lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/handler/component/QueryComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/handler/component/QueryComponent.java?rev=998326&r1=998325&r2=998326&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/handler/component/QueryComponent.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/handler/component/QueryComponent.java Fri Sep 17 21:10:50 2010
@@ -217,14 +217,8 @@ public class QueryComponent extends Sear
           for (String groupByStr : funcs) {
             QParser parser = QParser.getParser(groupByStr, "func", rb.req);
             Query q = parser.getQuery();
-            SolrIndexSearcher.GroupCommandFunc gc;
-            if (groupSort != null) {
-              SolrIndexSearcher.GroupSortCommand gcSort = new SolrIndexSearcher.GroupSortCommand();
-              gcSort.sort = groupSort;
-              gc = gcSort;
-            } else {
-              gc =  new SolrIndexSearcher.GroupCommandFunc();
-            }
+            SolrIndexSearcher.GroupCommandFunc gc = new SolrIndexSearcher.GroupCommandFunc();
+            gc.groupSort = groupSort;
 
             if (q instanceof FunctionQuery) {
               gc.groupBy = ((FunctionQuery)q).getValueSource();

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java?rev=998326&r1=998325&r2=998326&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java Fri Sep 17 21:10:50 2010
@@ -930,9 +930,8 @@ public class SolrIndexSearcher extends I
         Map context = ValueSource.newContext();
         gc.groupBy.createWeight(context, this);
         TopGroupCollector collector;
-        if (gc instanceof GroupSortCommand) {
-          GroupSortCommand sortGc = (GroupSortCommand) gc;
-          collector = new TopGroupSortCollector(gc.groupBy, context, sort, sortGc.sort, last);  
+        if (gc.groupSort != null && gc.groupSort != sort) {
+          collector = new TopGroupSortCollector(gc.groupBy, context, sort, gc.groupSort, last);
         } else {
           collector = new TopGroupCollector(gc.groupBy, context, sort, last);
         }
@@ -963,13 +962,7 @@ public class SolrIndexSearcher extends I
     for (GroupCommand groupCommand : cmd.groupCommands) {
       if (groupCommand instanceof GroupCommandFunc) {
         GroupCommandFunc gc = (GroupCommandFunc)groupCommand;
-        Sort collectorSort;
-        if (gc instanceof GroupSortCommand) {
-          collectorSort = ((GroupSortCommand) gc).sort;
-        } else {
-          collectorSort = sort;
-        }
-
+        Sort collectorSort = gc.groupSort == null ? sort : gc.groupSort;
         Phase2GroupCollector collector = new Phase2GroupCollector((TopGroupCollector)gc.collector, gc.groupBy, gc.context, collectorSort, gc.docsPerGroup, needScores);
         phase2Collectors.add(collector);
       }
@@ -1985,9 +1978,6 @@ public class SolrIndexSearcher extends I
     public Sort groupSort;  // the sort of the documents *within* a single group.
     public int groupLimit;   // how many groups - defaults to the "rows" parameter
     public int docsPerGroup; // how many docs in each group - from "group.limit" param, default=1
-
-
-    
   }
 
   public static class GroupCommandFunc extends GroupCommand {
@@ -1999,10 +1989,6 @@ public class SolrIndexSearcher extends I
     transient Collector collector;
   }
 
-  public static class GroupSortCommand extends GroupCommandFunc {
-    public Sort sort;
-  }
-
   /**
    * The result of a search.
    */