如何使用SolrJ检查每个索引的不同分片的IP地址是否已在Solr服务器中运行

时间:2018-05-22 06:00:10

标签: java solr solrj

仅考虑Solr服务器的HTTP URL,我必须检查服务器将数据存储在分片中的所有IP地址和端口,然后返回任何已关闭且无法运行的IP服务器。

我必须通过在Eclipse中编写Java代码来实现这一点。我找到了一个可以查询Solr数据库的Java API SolrJ,但我不知道如何获取所有分片及其IP地址。任何代码或过程都会有很大帮助。

1 个答案:

答案 0 :(得分:0)

您可以在SolrJ中使用Collections API调用来请求群集状态,这也意味着实时节点等。

可以这样做:

final SolrClient client = getSolrClient();

final SolrRequest request = new CollectionAdminRequest.ClusterStatus();

final NamedList<Object> response = client.request(request);
final NamedList<Object> cluster = (NamedList<Object>) response.get("cluster");
final List<String> liveNodes = (List<String>) cluster.get("live_nodes");

print("Found " + liveNodes.size() + " live nodes");

有关它的更多信息 - https://lucene.apache.org/solr/guide/7_3/using-solrj.html#other-apis