mirror of https://github.com/apache/lucene.git
SOLR-2955: Fixed IllegalStateException when querying with group.sort=score desc in sharded environment.
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1212420 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5e8c223baa
commit
8a4104be28
|
@ -419,6 +419,9 @@ Bug Fixes
|
|||
* SOLR-2509: StringIndexOutOfBoundsException in the spellchecker collate when the term contains
|
||||
a hyphen. (Thomas Gambier caught the bug, Steffen Godskesen did the patch, via Erick Erickson)
|
||||
|
||||
* SOLR-2955: Fixed IllegalStateException when querying with group.sort=score desc in sharded
|
||||
environment. (Steffen Elberg Godskesen, Martijn van Groningen)
|
||||
|
||||
Other Changes
|
||||
----------------------
|
||||
* SOLR-2922: Upgrade commons-io and commons-lang to 2.1 and 2.6, respectively. (koji)
|
||||
|
|
|
@ -162,13 +162,18 @@ public class QueryComponent extends SearchComponent
|
|||
|
||||
//TODO: move weighting of sort
|
||||
Sort groupSort = searcher.weightSort(cmd.getSort());
|
||||
if (groupSort == null) {
|
||||
groupSort = Sort.RELEVANCE;
|
||||
}
|
||||
|
||||
// groupSort defaults to sort
|
||||
String groupSortStr = params.get(GroupParams.GROUP_SORT);
|
||||
if (groupSort == null) {
|
||||
groupSort = new Sort();
|
||||
}
|
||||
//TODO: move weighting of sort
|
||||
Sort sortWithinGroup = groupSortStr == null ? groupSort : searcher.weightSort(QueryParsing.parseSort(groupSortStr, req));
|
||||
if (sortWithinGroup == null) {
|
||||
sortWithinGroup = Sort.RELEVANCE;
|
||||
}
|
||||
|
||||
groupingSpec.setSortWithinGroup(sortWithinGroup);
|
||||
groupingSpec.setGroupSort(groupSort);
|
||||
|
||||
|
|
|
@ -140,6 +140,7 @@ public class TestDistributedGrouping extends BaseDistributedSearchTestCase {
|
|||
query("q", "*:*", "fq", s1 + ":a", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.limit", 10, "sort", i1 + " asc, id asc", "group.truncate", "true", "facet", "true", "facet.field", t1);
|
||||
|
||||
// We cannot validate distributed grouping with scoring as first sort. since there is no global idf. We can check if no errors occur
|
||||
simpleQuery("q", "*:*", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.limit", 10, "sort", i1 + " desc", "group.sort", "score desc"); // SOLR-2955
|
||||
simpleQuery("q", "*:*", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.limit", 10, "sort", "score desc, _docid_ asc, id asc");
|
||||
simpleQuery("q", "*:*", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.limit", 10);
|
||||
}
|
||||
|
@ -149,6 +150,7 @@ public class TestDistributedGrouping extends BaseDistributedSearchTestCase {
|
|||
for (int i = 0; i < queryParams.length; i += 2) {
|
||||
params.add(queryParams[i].toString(), queryParams[i + 1].toString());
|
||||
}
|
||||
params.set("shards", shards);
|
||||
queryServer(params);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue