使用SolrJ从HttpSolrServer和CloudSolrServer检索模式信息

时间:2015-08-31 20:09:33

标签: solr solrj

HttpSolrServer / CloudSolrServer支持/schema请求处理程序,但EmbeddedSolrServer不支持,我希望使用SolrJ访问相同的信息(没有HTTP请求)。

使用EmbeddedSolrServer时,通过将CoreContainer传递给构造函数来创建实例。稍后,可以使用getCores()方法查询CoreContainer(嗯,只是嵌入式服务器中的那个)SolrCore。从任何给定的SolrCore,我可以使用getSchema()获取其模式。

我现在想用HttpSolrServer服务器和CloudSolrServer做同样的事情。但是,他们似乎没有办法要求加载SolrCores或CoreContainers或任何东西的列表。我知道CoreAdmin,但只检索每个核心的状态,无法获取SolrCore的Java实例。

是否可以使用SolrJ从HttpSolrServer / CloudSolrServer获取SolrCores列表,以及如何完成?

1 个答案:

答案 0 :(得分:1)

从Solr 5.3开始,SolrJ具有用于模式访问的API-请参见SchemaRequest

例如,要检索集合模式,可以使用(在Solr 7中):

CloudSolrClient client = ...;
SchemaRequest request = new SchemaRequest();
SchemaResponse response = request.process(client, "collectionName");
SchemaRepresentation schema = response.getSchemaRepresentation();