Solr API 用于获取分片的领导者/副本状态

标签 solr lucene

Solr 有一个管理 UI,我们可以在其中检查部署到 Solr Cloud 的每个集合。例如,我可以在集合中看到一个切片/碎片,如下面的 URL 所述。

enter image description here

由于安全原因,我们的生产环境不提供对此管理 UI 的访问。我需要提供一个 API 来获取每个集合的状态,以及它的分片和每个分片的副本。我正在使用 Solr API 来做到这一点

http://lucene.apache.org/solr/4_7_2/solr-solrj/index.html

CloudSolrServer server = new CloudSolrServer(<zk quorum>);
ZkStateReader reader = server.getZkStateReader();
Collection<Slice> slices = reader.getClusterState().getSlices(collection);
Iterator<Slice> iter = slices.iterator();
while (iter.hasNext()) {
    Slice slice = iter.next();
    System.out.println(slice.getName());
    System.out.println(slice.getState());
}

上面这段代码总是只返回 Active 作为分片的状态,即使它的副本在 UI 中显示出来。我假设这仅返回分片的状态,而不是分片的领导者或副本的状态。

如何通过 Solr API 获取副本状态?有没有这方面的 API?
Solr Admin UI 用于获取分片的副本/领导者状态的 API 是什么?

谢谢

最佳答案

该代码不查看副本状态。这是打印副本状态的一个:

CloudSolrServer server = new CloudSolrServer(zknodesurlstring);

    server.setDefaultCollection("mycollection");
    server.connect();

    ZkStateReader reader = server.getZkStateReader();
    Collection<Slice> slices = reader.getClusterState().getSlices("mycollection");
    Iterator<Slice> iter = slices.iterator();

    while (iter.hasNext()) {
        Slice slice = iter.next();
        for(Replica replica:slice.getReplicas()) {

            System.out.println("replica state for " + replica.getStr("core") + " : "+ replica.getStr( "state" ));

            System.out.println(slice.getName());
            System.out.println(slice.getState());
        }
    }

关于Solr API 用于获取分片的领导者/副本状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25662619/

相关文章:

java - 内存不足错误 : Java heap space error when start solr

search - 使用 Lucene.NET 在通配符搜索中转义特殊字符

pdf - 使用 cfsearch 和 SOLR 的 ColdFusion PDF 文件搜索速度极慢

solr - solr上的多线程索引

lucene - 如何删除Lucene索引而不影响目录中其他非索引文件?

python - 尝试为 python 安装 lucene。首先需要安装jcc。为 jcc 构建 setup.py 时,出现错误 ld : library not found for -ljava

java - Lucene 在搜索时对字段设置提升

elasticsearch - 根据特定条件在Elasticsearch中建立索引之前过滤掉文档

iphone - 用于集成离线和在线 Apache Solr 搜索的 iOS 框架

solr - 如何为 Lucene 4.0 启用新的可选 BlockPostingsFormat?