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.
*/