如何使用HTTP API查询Solr以获取有关集合的信息?我不是在谈论集合的索引,我可以使用COLSTATUS命令进行查询。我只是在谈论一个集合的基本细节,当您在Solr Web管理页面中单击一个集合时,您会看到这些细节,例如配置名称。
答案 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;
}
请从头处理异常。