Hi, in the TermsComponent.java's, createShardQuery, the motive to specify terms.limit to -1 is clearly specified in java comment
but we have a usecase where have thousands of terms and we want each core to return only the value specfied by terms.limit. can we have two flavours of TermsComponent where in 1. we specify terms.limit = -1 (which is the current one) 2. we honour terms.limit passed by the caller. something like below public class LimitBasedTermsComponent extends TermsComponent { @Override public int distributedProcess(ResponseBuilder rb) throws IOException { if (!rb.doTerms) { return ResponseBuilder.STAGE_DONE; } if (rb.stage == ResponseBuilder.STAGE_EXECUTE_QUERY) { TermsHelper th = rb._termsHelper; if (th == null) { th = rb._termsHelper = new TermsHelper(); th.init(rb.req.getParams()); } ShardRequest sreq = createShardQuery(rb.req.getParams()); rb.addRequest(this, sreq); } if (rb.stage < ResponseBuilder.STAGE_EXECUTE_QUERY) { return ResponseBuilder.STAGE_EXECUTE_QUERY; } else { return ResponseBuilder.STAGE_DONE; } } private ShardRequest createShardQuery(SolrParams params) { ShardRequest sreq = new ShardRequest(); sreq.purpose = ShardRequest.PURPOSE_GET_TERMS; // base shard request on original parameters sreq.params = new ModifiableSolrParams(params); // if TermsParams.TERMS_LIMIT is present in the params, use the value, else default it to 10 sreq.params.remove(TermsParams.TERMS_MAXCOUNT); sreq.params.remove(TermsParams.TERMS_MINCOUNT); sreq.params.set(TermsParams.TERMS_LIMIT, params.getInt(TermsParams.TERMS_LIMIT, 10)); sreq.params.set(TermsParams.TERMS_SORT, TermsParams.TERMS_SORT_INDEX); return sreq; } Thanks, Radhakrishnan D