目前,我使用solrj库的CloudSolrServer API为Solr的每个查询使用下面的逻辑。
CloudSolrServer server = new CloudSolrServer(<zookeeper_quorum>);
server.connect();
收到回复后,我正在关闭连接。
server.shutdown();
我知道这不是正确的方法,因为我不应该为每次搜索打开连接。我想在我的代码中创建一个连接池(线程池)并查询Solr。 但是,只是想知道Solr是否会在SolrJ客户端库内部实现一个线程池来支持这种用法。如果是这样,如何控制这里的线程数?
答案 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();`