mirror of https://github.com/apache/lucene.git
SOLR-2642: Fixed sorting by function when using grouping.
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1146291 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b3481764ab
commit
bcc7efbee5
|
@ -369,6 +369,8 @@ Bug Fixes
|
||||||
|
|
||||||
* SOLR-2564: Fixed ArrayIndexOutOfBoundsException when using simple format and start > 0
|
* SOLR-2564: Fixed ArrayIndexOutOfBoundsException when using simple format and start > 0
|
||||||
|
|
||||||
|
* SOLR-2642: Fixed sorting by function when using grouping. (Thomas Heigl, Martijn van Groningen)
|
||||||
|
|
||||||
Other Changes
|
Other Changes
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
|
|
@ -331,9 +331,9 @@ public class QueryComponent extends SearchComponent
|
||||||
|
|
||||||
boolean includeTotalGroupCount = params.getBool(GroupParams.GROUP_TOTAL_COUNT, false);
|
boolean includeTotalGroupCount = params.getBool(GroupParams.GROUP_TOTAL_COUNT, false);
|
||||||
Grouping.TotalCount defaultTotalCount = includeTotalGroupCount ? Grouping.TotalCount.grouped : Grouping.TotalCount.ungrouped;
|
Grouping.TotalCount defaultTotalCount = includeTotalGroupCount ? Grouping.TotalCount.grouped : Grouping.TotalCount.ungrouped;
|
||||||
Sort sort = cmd.getSort();
|
Sort sort = searcher.weightSort(cmd.getSort());
|
||||||
// groupSort defaults to sort
|
// groupSort defaults to sort
|
||||||
Sort groupSort = groupSortStr == null ? cmd.getSort() : QueryParsing.parseSort(groupSortStr, req);
|
Sort groupSort = groupSortStr == null ? sort : searcher.weightSort(QueryParsing.parseSort(groupSortStr, req));
|
||||||
|
|
||||||
int limitDefault = cmd.getLen(); // this is normally from "rows"
|
int limitDefault = cmd.getLen(); // this is normally from "rows"
|
||||||
int groupOffsetDefault = params.getInt(GroupParams.GROUP_OFFSET, 0);
|
int groupOffsetDefault = params.getInt(GroupParams.GROUP_OFFSET, 0);
|
||||||
|
|
|
@ -214,6 +214,26 @@ public class TestGroupingSearch extends SolrTestCaseJ4 {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGroupingSortByFunction() throws Exception {
|
||||||
|
assertU(add(doc("id", "1", "value1_i", "1", "value2_i", "1", "store", "45.18014,-93.87742")));
|
||||||
|
assertU(add(doc("id", "2", "value1_i", "1", "value2_i", "2", "store", "45.18014,-93.87743")));
|
||||||
|
assertU(add(doc("id", "3", "value1_i", "1", "value2_i", "3", "store", "45.18014,-93.87744")));
|
||||||
|
assertU(add(doc("id", "4", "value1_i", "1", "value2_i", "4", "store", "45.18014,-93.87745")));
|
||||||
|
assertU(add(doc("id", "5", "value1_i", "1", "value2_i", "5", "store", "45.18014,-93.87746")));
|
||||||
|
assertU(commit());
|
||||||
|
|
||||||
|
assertJQ(
|
||||||
|
req("q", "*:*", "sort", "sum(value1_i, value2_i) desc", "rows", "1", "group", "true", "group.field", "id", "fl", "id"),
|
||||||
|
"/grouped=={'id':{'matches':5,'groups':[{'groupValue':'5','doclist':{'numFound':1,'start':0,'docs':[{'id':'5'}]}}]}}"
|
||||||
|
);
|
||||||
|
|
||||||
|
assertJQ(
|
||||||
|
req("q", "*:*", "sort", "geodist(45.18014,-93.87742,store) asc", "rows", "1", "group", "true", "group.field", "id", "fl", "id"),
|
||||||
|
"/grouped=={'id':{'matches':5,'groups':[{'groupValue':'1','doclist':{'numFound':1,'start':0,'docs':[{'id':'1'}]}}]}}"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
static String f = "foo_i";
|
static String f = "foo_i";
|
||||||
static String f2 = "foo2_i";
|
static String f2 = "foo2_i";
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue