SolrEntityProcessor를 이용한 Solr Index 마이그레이션 (3.x → 4.x)
SolrEntityProcessor란?
DIH(DataImportHandler)의 확장 기능인 SolrEntityProcessor는, 다른 Solr 인스턴스나 코어간에 데이터 임포트를 실시하는 수단을 제공해 줍니다.
특히 Solr 3.x에서 4.x로 Index를 마이그레이션하는 경우 Index 형식이 변경되어 Index 파일을 그대로 복사해도 사용할 수 없으므로 SolrEntityProcessor를 사용하여 유연한 Index 마이그레이션이 가능합니다.
다만, 당연합니다만 Index의 이행이므로, 이행 대상 필드는 스키마 정의로 stored=true 가 되어 있을 필요가 있습니다 (stored=false 는 Index 에 필드치를 가지지 않기 때문에).
그림은 이런 느낌
지정 가능한 파라미터 중에서 중요한 것을 픽업
해보자
이 절에서는 Solr3.5의 Index를 Solr4.10.2로 마이그레이션하는 시나리오에서 설명합니다.
* 마이그레이션 대상 필드에서 Solr3.5와 Solr4.10.2의 스키마 정의가 일치하는지 확인합니다 (stored = true도).
* Solr4.10.2 측에서 다음 설정을 수행합니다.
solrconfig.xml을 편집합니다.
<lib dir="../../../dist/" regex="solr-dataimporthandler-\d.*\.jar" />
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
<dataConfig>
<document>
<entity name="sep" processor="SolrEntityProcessor" url="http://xxx.xxx.xxx.xxx:8983/solr" query="*:*" rows="1000" timeout="5" wt="xml"/>
</document>
</dataConfig>
요청은 즉시 종료 응답을 반환하지만 실제로 가져오기는 비동기적으로 실행됩니다.
참고: full-import는 인덱스를 모두 삭제한 다음 데이터를 가져옵니다. 원래 색인 데이터를 남기려면 delta-import를 사용하십시오.
$ curl "http://localhost:8983/solr/dataimport?command=full-import"
요약
사용해 본 느낌, 자유롭게 쿼리를 쓸 수 있고 또한 대상 필드를 지정 가능하고, 1회 요구의 처리량도 지정할 수 있는 등, 사용하기 편리하다고 생각했습니다.
Reference
이 문제에 관하여(SolrEntityProcessor를 이용한 Solr Index 마이그레이션 (3.x → 4.x)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MingchunZhao/items/b51654c854b251380a11텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)