2012-03-12 5 views
3

Могу ли я выполнить распределенный поиск, используя solrj? Если да, то как? (примечание: not solr)Распределенный поиск с использованием solrj?

В этом аспекте я не располагаю документацией. Пожалуйста, помогите мне, если вы найдете какой-либо/использовали это раньше.

ответ

7

Предполагая, что ваши осколки:

"локальный: 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); 
+0

Но с помощью solr4j вы должны иметь HttpSolr Клиентский объект, который я предполагаю, в данном случае является сервером. Как вы его создаете? (У меня есть solr 5.3.0) – Eszter

Смежные вопросы