From 1c3d23e58a987e60a0af08b9fca2211908cf49d3 Mon Sep 17 00:00:00 2001 From: Chris Hostetter Date: Fri, 19 Apr 2019 10:59:53 -0700 Subject: [PATCH] SOLR-13336: fix CloudInspectUtil to use filter to eliminate risk of TooManyClausesException --- .../src/java/org/apache/solr/cloud/CloudInspectUtil.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java b/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java index c66fa0a91b0..a72f06bb7ab 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java @@ -209,12 +209,15 @@ public class CloudInspectUtil { try { // get versions for the mismatched ids boolean foundId = false; - StringBuilder ids = new StringBuilder("id:("); + + // use filter() to allow being parsed as 'terms in set' query instead of a (weighted/scored) + // BooleanQuery so we don't trip too many boolean clauses + StringBuilder ids = new StringBuilder("filter(id:("); for (Map doc : differences) { ids.append(" ").append(doc.get("id")); foundId = true; } - ids.append(")"); + ids.append("))"); if (foundId) { // get versions for those ids that don't match