From 902381a8ecfb13987f5cb16baa127654cf80d579 Mon Sep 17 00:00:00 2001 From: "Chris M. Hostetter" Date: Thu, 13 Dec 2012 19:50:41 +0000 Subject: [PATCH] SOLR-4150: tests for existing fix. includes workarround for SOLR-4181 git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1421451 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/solr/TestDistributedGrouping.java | 12 ++++++++++++ .../src/test/org/apache/solr/TestGroupingSearch.java | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java b/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java index 7d21da841a9..6ee40a28e67 100755 --- a/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java +++ b/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java @@ -163,6 +163,18 @@ public class TestDistributedGrouping extends BaseDistributedSearchTestCase { query("q", "*:*", "rows", 100, "fl", "id," + i1, "group", "true", "group.query", t1 + ":kings OR " + t1 + ":eggs", "group.limit", 10, "sort", i1 + " asc, id asc"); query("q", "*:*", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.query", t1 + ":kings OR " + t1 + ":eggs", "group.limit", 10, "sort", i1 + " asc, id asc"); + // SOLR-4150: what if group.query has no matches, + // or only matches on one shard + query("q", "*:*", "rows", 100, "fl", "id," + i1, "group", "true", + "group.query", t1 + ":kings OR " + t1 + ":eggs", + "group.query", "id:5", // single doc, so only one shard will have it + "group.limit", 10, "sort", i1 + " asc, id asc"); + handle.put(t1 + ":this_will_never_match", SKIP); // :TODO: SOLR-4181 + query("q", "*:*", "rows", 100, "fl", "id," + i1, "group", "true", + "group.query", t1 + ":kings OR " + t1 + ":eggs", + "group.query", t1 + ":this_will_never_match", + "group.limit", 10, "sort", i1 + " asc, id asc"); + // SOLR-3109 query("q", t1 + ":eggs", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.limit", 10, "sort", tlong + " asc, id asc"); query("q", i1 + ":232", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.limit", 10, "sort", tlong + " asc, id asc"); diff --git a/solr/core/src/test/org/apache/solr/TestGroupingSearch.java b/solr/core/src/test/org/apache/solr/TestGroupingSearch.java index d6c857393dd..d902474e898 100644 --- a/solr/core/src/test/org/apache/solr/TestGroupingSearch.java +++ b/solr/core/src/test/org/apache/solr/TestGroupingSearch.java @@ -502,6 +502,18 @@ public class TestGroupingSearch extends SolrTestCaseJ4 { "'doclist':{'numFound':4,'start':0,'docs':[{'id':'3'},{'id':'4'},{'id':'2'}]}}}" ); + // group.query that matches nothing + assertJQ(req("fq",filt, + "q","{!func}"+f2, + "group","true", + "group.query","id:[2 TO 5]", + "group.query","id:1000", + "fl","id", + "group.limit","3") + ,"/grouped/id:[2 TO 5]=={'matches':10,'doclist':{'numFound':4,'start':0,'docs':[{'id':'3'},{'id':'4'},{'id':'2'}]}}" + ,"/grouped/id:1000=={'matches':10,'doclist':{'numFound':0,'start':0,'docs':[]}}" + ); + // group.query and offset assertJQ(req("fq",filt, "q","{!func}"+f2, "group","true", "group.query","id:[2 TO 5]", "fl","id", "group.limit","3", "group.offset","2") ,"/grouped=={'id:[2 TO 5]':{'matches':10," +