4. DataImportHandler 설정
4.1 data-config.xml
데이터를 인덱싱할 때 참조할 data-config.xml파일을 생성해야 한다. 아래의 예와 같이 쿼리 및 필드 매핑 정보, Transformer 설정등을 할 수 있다.
<dataConfig>
<dataSource driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@123.456.78.9:1521:ORCL" user="USERNAME" password="PASS1234" />
<document name="products">
<entity name="log" query="select * from BLOG_LOG">
<field column="LOG_ID" name="logId" />
<field column="BLOG_ID" name="blogId" />
<field column="MENU_ID" name="menuId" />
<field column="TITLE" name="title" />
<field column="REGISTER_NICKNAME" name="registerNickname" />
<field column="TAGS" name="tags" />
<entity name="contents" query="select contents from BLOG_LOG_CONTENTS where LOG_ID='${log.LOG_ID}'" transformer="netville.blog.util.NetvilleClobTransformer">
<field name="contents" column="CONTENTS" clob="true" />
</entity>
</entity>
</document>
</dataConfig>
4.2 DataImportHandler 등록
solrconfig.xml에서 <config></config> 태그 안에 아래의 설정을 추가한다.
(설정 전에, 관련 라이브러리가 추가되어 있어야 한다. ‘1.5 라이브러리 설치’ 참조.)
<!-- DB data import configure -->
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">/data-config.xml</str>
</lst>
</requestHandler>
4.3 ClobTransformer
인덱싱을 실시할 필드 중, CLOB 타입의 데이터가 있다면 String타입으로 변환해줄 수 있는 Transformer클래스가 필요하다. 현재 SOLR 1.3.0 버전에서는 ClobTransformer를 지원하고 있지 않기 때문에(SOLR v1.4 부터 지원) CLOB타입을 변환해줄 수 있는 CustomTransformer를 생성하여야 한다.