2012-03-12 88 views
3

我可以使用solrj執行分佈式搜索嗎?如果是這樣如何? (注意:不是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意味着您需要有一個HttpSolrC在這種情況下,我認爲是服務器。你如何創建它? (我有solr 5.3.0) – Eszter 2015-12-28 11:24:49