You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mk...@apache.org on 2017/04/25 10:13:53 UTC
lucene-solr:master: SOLR-10520: fix child.facet.field counts
Repository: lucene-solr
Updated Branches:
refs/heads/master cd02dd7d4 -> 680f4d7fd
SOLR-10520: fix child.facet.field counts
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/680f4d7f
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/680f4d7f
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/680f4d7f
Branch: refs/heads/master
Commit: 680f4d7fd378868254786107de92a894758f667c
Parents: cd02dd7
Author: Mikhail Khludnev <mk...@apache.org>
Authored: Tue Apr 25 12:27:18 2017 +0300
Committer: Mikhail Khludnev <mk...@apache.org>
Committed: Tue Apr 25 12:33:05 2017 +0300
----------------------------------------------------------------------
solr/CHANGES.txt | 1 +
.../search/join/BlockJoinFacetComponentSupport.java | 12 +++++++-----
.../solr/search/join/BlockJoinFacetDistribTest.java | 10 ++++++++--
3 files changed, 16 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/680f4d7f/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 19fc3f8..417eed6 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -241,6 +241,7 @@ Bug Fixes
when there was a mincount > 1. This has been corrected by changing numBuckets cardinality processing to
ignore mincount > 1 for non-distributed requests. (yonik)
+* SOLR-10520: child.facet.field doubled counts at least when rows>0. (Dr. Oleg Savrasov via Mikhail Khludnev)
Other Changes
----------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/680f4d7f/solr/core/src/java/org/apache/solr/search/join/BlockJoinFacetComponentSupport.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/join/BlockJoinFacetComponentSupport.java b/solr/core/src/java/org/apache/solr/search/join/BlockJoinFacetComponentSupport.java
index 85aa799..560e441 100644
--- a/solr/core/src/java/org/apache/solr/search/join/BlockJoinFacetComponentSupport.java
+++ b/solr/core/src/java/org/apache/solr/search/join/BlockJoinFacetComponentSupport.java
@@ -124,11 +124,13 @@ abstract class BlockJoinFacetComponentSupport extends SearchComponent {
@Override
public void handleResponses(ResponseBuilder rb, ShardRequest sreq) {
- NamedList collectedChildFacetFields = getChildFacetFields(rb.rsp.getValues(), true);
- List<ShardResponse> responses = sreq.responses;
- for (ShardResponse shardResponse : responses) {
- NamedList shardChildFacetFields = getChildFacetFields(shardResponse.getSolrResponse().getResponse(), false);
- mergeFacets(collectedChildFacetFields, shardChildFacetFields);
+ if ((sreq.purpose & ShardRequest.PURPOSE_GET_TOP_IDS) != 0) {
+ NamedList collectedChildFacetFields = getChildFacetFields(rb.rsp.getValues(), true);
+ List<ShardResponse> responses = sreq.responses;
+ for (ShardResponse shardResponse : responses) {
+ NamedList shardChildFacetFields = getChildFacetFields(shardResponse.getSolrResponse().getResponse(), false);
+ mergeFacets(collectedChildFacetFields, shardChildFacetFields);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/680f4d7f/solr/core/src/test/org/apache/solr/search/join/BlockJoinFacetDistribTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/join/BlockJoinFacetDistribTest.java b/solr/core/src/test/org/apache/solr/search/join/BlockJoinFacetDistribTest.java
index 2bd30fa..1b12657 100644
--- a/solr/core/src/test/org/apache/solr/search/join/BlockJoinFacetDistribTest.java
+++ b/solr/core/src/test/org/apache/solr/search/join/BlockJoinFacetDistribTest.java
@@ -130,12 +130,18 @@ public class BlockJoinFacetDistribTest extends SolrCloudTestCase{
// to parent query
final String childQueryClause = "COLOR_s:("+(matchingColors.toString().replaceAll("[,\\[\\]]", " "))+")";
+ final boolean oldFacetsEnabled = random().nextBoolean();
QueryResponse results = query("q", "{!parent which=\"type_s:parent\"}"+childQueryClause,
- "facet", random().nextBoolean() ? "true":"false",
+ "facet", oldFacetsEnabled ? "true":"false", // try to enforce multiple phases
+ oldFacetsEnabled ? "facet.field" : "ignore" , "BRAND_s",
+ oldFacetsEnabled&&usually() ? "facet.limit" : "ignore" , "1",
+ oldFacetsEnabled&&usually() ? "facet.mincount" : "ignore" , "2",
+ oldFacetsEnabled&&usually() ? "facet.overrequest.count" : "ignore" , "0",
"qt", random().nextBoolean() ? "blockJoinDocSetFacetRH" : "blockJoinFacetRH",
"child.facet.field", "COLOR_s",
"child.facet.field", "SIZE_s",
- "rows","0" // we care only abt results
+ "distrib.singlePass", random().nextBoolean() ? "true":"false",
+ "rows", random().nextBoolean() ? "0":"10"
);
NamedList<Object> resultsResponse = results.getResponse();
assertNotNull(resultsResponse);