如何在Solr中查询集合的详细信息,例如集合的配置名称?

时间:2020-08-25 01:42:05

标签: solr

如何使用HTTP API查询Solr以获取有关集合的信息?我不是在谈论集合的索引,我可以使用COLSTATUS命令进行查询。我只是在谈论一个集合的基本细节,当您在Solr Web管理页面中单击一个集合时,您会看到这些细节,例如配置名称。

2 个答案:

答案 0 :(得分:1)

在想知道Web界面中提供的信息来自何处时,最简单的方法是调出浏览器的开发工具并转到“网络”部分。由于该接口是一个小型Javascript应用程序,因此它将在后台使用可用的REST API,就像您自己查询一样。

可以通过查询来检索广泛的收集信息

/solr/admin/collections?action=CLUSTERSTATUS&wt=json

(仅存在用于缓存清除的任何_参数)。

这将返回所有存在的集合及其元数据的列表,例如它们使用的配置集以及集合包含的碎片。这是Web界面使用的同一API端点。

collections":{
  "aaaaa":{
    "pullReplicas":"0",
    "replicationFactor":"1",
    "shards":{"shard1":{
        "range":"80000000-7fffffff",
        "state":"active",
        "replicas":{"core_node2":{
            "core":"aaaaa_shard1_replica_n1",
            "base_url":"http://...:8983/solr",
            "node_name":"...:8983_solr",
            "state":"down",
            "type":"NRT",
            "force_set_state":"false",
            "leader":"true"}}}},
    "router":{"name":"compositeId"},
    "maxShardsPerNode":"1",
    "autoAddReplicas":"false",
    "nrtReplicas":"1",
    "tlogReplicas":"0",
    "znodeVersion":7,
    "configName":"_default"},
  ...
}

答案 1 :(得分:0)

请尝试以下代码。

getConfigName(String collectionName){
    
    //provide the list of zookeeper instances   
    List<String> zkHosts = ""
    // get the solr cloud client
    CloudSolrClient cloudSolrClient = new CloudSolrClient.Builder (zkHosts, Optional.empty 
    ()).build ();
    
    // get the config for the collection
    String configName = solrConnectionProvider.getCloudSolrClient().getZkStateReader().readConfigName(collectionName);
   return configName;
}

请从头处理异常。

相关问题