Solr (현재 3.6버전) 가 Tomcat(현재 6 버전)에 설치되어 있다는 전제로 진행합니다.

Solr 를 Tomcat에 설치 하고, 인덱싱을 해야하는데,

인덱싱을 하기 위해 데이터를 XML 형태로 Parsing 해야합니다.

RDB에 이미 데이터가 존재 하는경우 데이터를 XML 로 parsing하지 않고

DB에서 바로 인덱싱 하기 위한 방법을 정리해봅니다.

  1. solr 를 다운로드 받고 압축을 푼 디렉토리를 확인하면 apache-solr-3.6.1/dist/ 디렉토리가 있습니다.

예) apache-solr-3.6.1/dist

해당 디렉토리 안에 libs 안의 관련 jar 파일들을 복사해서 Solr 컨텍스트의 WEB-INF/lib 안에 넣습니다.

apache-solr-dataimporthandler-3.6.1.jar,

apache-solr-dataimporthandler-extras-3.6.1.jar

  1. 다음으로 solrconfig.xml 을 수정해야합니다.

아래 나오는 테그를 입력합니다.

db-data-config.xml

solrconfig.xml 샘플을 복사해서 사용할 경우

파일 안의 아래부분을 주석 처리 합니다.

위 설정은 해당 jar 의 위치를 설정 하는 것인데, jar 파일을 컨텍스트로 복사 했기때문에 필요 없습니다.

또는 저 위치를 다른곳에 두었다면 경로를 정의 해주면 됩니다.

  1. 이제 solrconfig.xml 에 정의한 db 정보에 대한 파일을 만들어야 합니다. (db-data-config.xml)

<?xml version=”1.0” encoding=”UTF-8” ?>

위와 같이 정리 합니다.

  1. 마지막으로 solr 의 index를 정의 하는 schema.xml 을 수정해야합니다.

schema.xml 파일을 열고 db-data-config.xml 에서 정의한대로 영역에 각각 엘리먼트로 채워 줍니다.

물론… jdbc driver 는 tomcat/{context}/WEB-INF/lib 에 넣어야 겠죠…

아래는 인덱스를 발동시키는 사용법입니다.

http://localhost[:port]/[context/]dataimport?command=full-import

command 에 대해서..

full-import : 기존의 인덱싱을 삭제 하고 전체 데이터를 indexing 합니다

delta-import : 기존의 인덱싱을 두고 추가로 indexing 합니다. 전체 인덱스는 증가하겠죠..

reload-config : 설정 파일을 리로딩합니다.

abort : indexing 작업을 중단합니다.

참고 :

http://wiki.apache.org/solr/DataImportHandler

Apache Solr 3.1 Cookbook - How to properly configure Data Import Handler with JDBC