Solr CloudSolrServer API

时间:2015-02-19 10:39:13

标签: solr solrj solrcloud

目前,我使用solrj库的CloudSolrServer API为Solr的每个查询使用下面的逻辑。

CloudSolrServer server = new CloudSolrServer(<zookeeper_quorum>);
server.connect();

收到回复后,我正在关闭连接。

server.shutdown();

我知道这不是正确的方法,因为我不应该为每次搜索打开连接。我想在我的代码中创建一个连接池(线程池)并查询Solr。 但是,只是想知道Solr是否会在SolrJ客户端库内部实现一个线程池来支持这种用法。如果是这样,如何控制这里的线程数?

2 个答案:

答案 0 :(得分:0)

每次回复后都无需关闭连接。

Solrj内部使用负载平衡来命中不同的云副本。那是在你向Solrj提交请求之后。它不允许提交一批查询。您创建线程池的想法看起来不错。

答案 1 :(得分:-1)

我想知道为什么你需要关闭solr,如果你想让一个服务器使用多个集合,你只能使用这个代码。你不需要关闭solrserver

`server = getCloudSolrServer("127.0.0.1:2181");
 UpdateRequest request = new UpdateRequest();
 request.add(docList);
 request.setParam("collection", collection);
 UpdateResponse response = request.process(server);
 server.commit();`