2012-03-13 2 views
0

분산 검색에 solrj를 사용하고 있습니다. 특정 사용자 환경 설정에 따라 특정 인덱스 세트를 검색해야합니다. 특정 검색 쿼리에 대한 datadir을 프로그래밍 방식으로 지정할 수있는 방법이 있습니까?solrj에서 다른 데이터 디렉토리를 가리 킵니까?

문서를 스눕 (snoop)했지만 다른 코어에서 데이터 세트를 갖는 것 이외의 다른 방법을 찾을 수 없었습니다. 더 좋은 방법이 있습니까?

편집 1 : 모든 색인 세트는 동일한 스키마 형식을 갖습니다.

답변

2

CREATE CoreAdmin action을 사용하고 dataDir 매개 변수를 사용하여 거의 동적으로 dataDir을 변경할 수 있습니다.

기존 instanceDir/solrconfig.xml/schema.xml을 기반으로 새 코어를 만들고 등록합니다. 지속성을 사용하는 경우 (persist = true)이 새로운 코어의 구성은 'solr.xml'에 저장됩니다. 동일한 이름의 코어가 존재하는 경우 "새로운"생성 코어가 활성화되면 "이전"의 코어는 요청을 계속 받아들입니다. 완료되면 새로운 요청 이 "새"코어로 이동하고 "오래된"코어가 언로드됩니다.

어쨌든 새로운 코어를로드해야 할 필요없이 데이터 디렉토리를 변경하지 않고 변경할 수 있습니다.

CoreAdminRequestCoreAdminResponse 클래스를 사용하여 solrj를 사용하여 CoreAdmin 작업을 호출 할 수 있습니다.

+0

별도의 코어 @javanna에서 취급하는 것과 거의 같습니다. – Greenhorn

+0

@greenhorn 네, 비슷하지만,이 솔루션을 사용하면 하나의 코어 만 실행하게되고이 솔루션에서'dataDir'을 변경할 것입니다. – javanna

+0

예! 나는 약간의 연구를하고 있으며, 뭔가가 돌아 서면 여기에서 업데이트 할 것이다. – Greenhorn

관련 문제