4

我正在编写一个自定义 Solr 组件,它使用CloudSolrServer实例对分布式索引执行辅助查询。我solrconfig.xml以通常的方式从配置中获取 Zookeeper url 和集合名称:

String zookeeper = params.get(ZOOKEEPER_URL);
String collection = params.get(COLLECTION_NAME);

我想从我的solrconfig.xml文件中删除 Zookeeper url 条目和集合名称条目。是否可以从其他地方获取这些值?我正在运行我的组件的同一个集合上执行辅助查询。如何从组件代码中获取我的集合名称及其 Zookeeper url?

4

1 回答 1

4

zookeeper url 和集合名称可以通过使用传递给每个组件方法的rb( ) 参数来获取:ResponseBuilder

CoreDescriptor coreDescriptor = rb.req.getCore().getCoreDescriptor();

String collectionName = coreDescriptor.getCloudDescriptor().getCollectionName();

ZkController zkController = coreDescriptor.getCoreContainer().getZkController();

String zookeeperUrl = zkController.getZkServerAddress();

假设自定义组件类 extends SearchComponentrb参数将传递给组件的每个公共方法:prepareprocessdistributedProcessmodifyRequest和。handleResponsesfinishStage

于 2013-11-05T10:46:11.390 回答