Предполагая, что ваши осколки:
"локальный: 8983/Solr" и "локальный: 7574/Solr"
Вы можете выполнить распределенный поиск с solrj как:
String shards = "localhost:8983/solr,localhost:7574/solr";
StringBuffer request = new StringBuffer();
request.append("&q=" + query);
request.append("&shards=" + shards);
SolrParams solrParams = SolrRequestParsers.parseQueryString(request
.toString());
QueryResponse rsp = server.query(solrParams);
в качестве альтернативы вы можете использовать класс ModifiableSolrParams:
String shards = "localhost:8983/solr,localhost:7574/solr";
ModifiableSolrParams solrParams = new ModifiableSolrParams();
solrParams.set("q", query);
solrParams.set("shards", shards);
QueryResponse rsp = server.query(solrParams);
Но с помощью solr4j вы должны иметь HttpSolr Клиентский объект, который я предполагаю, в данном случае является сервером. Как вы его создаете? (У меня есть solr 5.3.0) – Eszter