4

CloudSolrServerインスタンスを使用して分散インデックスで補助クエリを実行するカスタム Solr コンポーネントを作成しています。solrconfig.xml通常の方法で設定から Zookeeper の URL とコレクション名を取得しています。

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

Zookeeper の URL エントリとコレクション名のエントリをファイルから消去したいと考えていsolrconfig.xmlます。これらの値を別の場所から取得することは可能ですか? コンポーネントが実行されているのと同じコレクションで補助クエリを実行しています。コレクション名とその Zookeeper URL をコンポーネント コード内から取得するにはどうすればよいですか?

4

1 に答える 1

4

飼育係の URL とコレクション名は、各コンポーネントのメソッドに渡されるrb( ) パラメータを使用して取得できます。ResponseBuilder

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

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

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

String zookeeperUrl = zkController.getZkServerAddress();

カスタム コンポーネント クラスが extendsSearchComponentであると仮定すると、rbパラメーターはコンポーネントの各パブリック メソッド ( prepareprocessdistributedProcessmodifyRequesthandleResponsesおよび) に渡されますfinishStage

于 2013-11-05T10:46:11.390 に答える