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
|
* 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)
|
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
|
Other Changes
|
||||||
----------------------
|
----------------------
|
||||||
* SOLR-2922: Upgrade commons-io and commons-lang to 2.1 and 2.6, respectively. (koji)
|
* 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
|
//TODO: move weighting of sort
|
||||||
Sort groupSort = searcher.weightSort(cmd.getSort());
|
Sort groupSort = searcher.weightSort(cmd.getSort());
|
||||||
|
if (groupSort == null) {
|
||||||
|
groupSort = Sort.RELEVANCE;
|
||||||
|
}
|
||||||
|
|
||||||
// groupSort defaults to sort
|
// groupSort defaults to sort
|
||||||
String groupSortStr = params.get(GroupParams.GROUP_SORT);
|
String groupSortStr = params.get(GroupParams.GROUP_SORT);
|
||||||
if (groupSort == null) {
|
|
||||||
groupSort = new Sort();
|
|
||||||
}
|
|
||||||
//TODO: move weighting of sort
|
//TODO: move weighting of sort
|
||||||
Sort sortWithinGroup = groupSortStr == null ? groupSort : searcher.weightSort(QueryParsing.parseSort(groupSortStr, req));
|
Sort sortWithinGroup = groupSortStr == null ? groupSort : searcher.weightSort(QueryParsing.parseSort(groupSortStr, req));
|
||||||
|
if (sortWithinGroup == null) {
|
||||||
|
sortWithinGroup = Sort.RELEVANCE;
|
||||||
|
}
|
||||||
|
|
||||||
groupingSpec.setSortWithinGroup(sortWithinGroup);
|
groupingSpec.setSortWithinGroup(sortWithinGroup);
|
||||||
groupingSpec.setGroupSort(groupSort);
|
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);
|
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
|
// 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, "sort", "score desc, _docid_ asc, id asc");
|
||||||
simpleQuery("q", "*:*", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.limit", 10);
|
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) {
|
for (int i = 0; i < queryParams.length; i += 2) {
|
||||||
params.add(queryParams[i].toString(), queryParams[i + 1].toString());
|
params.add(queryParams[i].toString(), queryParams[i + 1].toString());
|
||||||
}
|
}
|
||||||
|
params.set("shards", shards);
|
||||||
queryServer(params);
|
queryServer(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue