2013-10-31 4 views
4

CloudSolrServer 인스턴스를 사용하는 사용자 지정 Solr 구성 요소를 작성하여 분산 인덱스에 대한 보조 쿼리를 실행합니다. 나는 일반적인 방법으로 solrconfig.xml 구성에서 사육사의 URL과 모음 이름을 가져 오는 해요 :Zookeeper URL 및 Solr 컬렉션 이름을 Solr 구성 요소 코드 내에서 가져 오기

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

나는 사육사의 URL 항목 내 solrconfig.xml 파일에서 컬렉션 이름 항목을 삭제하고 싶습니다. 그 값을 다른 곳에서 가져올 수 있습니까? 내 구성 요소가 실행되는 동일한 컬렉션에서 보조 쿼리를 실행하고 있습니다. 구성 요소 코드 내에서 내 컬렉션 이름과 Zookeeper URL을 얻으려면 어떻게해야합니까?

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

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

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

String zookeeperUrl = zkController.getZkServerAddress(); 

rb 파라미터를 전달하고, 사용자 정의 컴포넌트 클래스 SearchComponent 연장 가정하면

답변

4

사육사 URL과 모음 이름은 구성 요소의 각각의 방법으로 전달 rb (ResponseBuilder) 파라미터를 이용하여 인출 할 수있다 각 컴퍼넌트의 public 메소드에 대해서 : prepare, process, distributedProcess, modifyRequest, handleResponsesfinishStage.