[solr] 데이터베이스의 데이터를 indexing 하기
Solr (현재 3.6버전) 가 Tomcat(현재 6 버전)에 설치되어 있다는 전제로 진행합니다.
Solr 를 Tomcat에 설치 하고, 인덱싱을 해야하는데,
인덱싱을 하기 위해 데이터를 XML 형태로 Parsing 해야합니다.
RDB에 이미 데이터가 존재 하는경우 데이터를 XML 로 parsing하지 않고
DB에서 바로 인덱싱 하기 위한 방법을 정리해봅니다.
- 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
- 다음으로 solrconfig.xml 을 수정해야합니다.
아래 나오는 테그를 입력합니다.
solrconfig.xml 샘플을 복사해서 사용할 경우
파일 안의 아래부분을 주석 처리 합니다.
위 설정은 해당 jar 의 위치를 설정 하는 것인데, jar 파일을 컨텍스트로 복사 했기때문에 필요 없습니다.
또는 저 위치를 다른곳에 두었다면 경로를 정의 해주면 됩니다.
- 이제 solrconfig.xml 에 정의한 db 정보에 대한 파일을 만들어야 합니다. (db-data-config.xml)
<?xml version=”1.0” encoding=”UTF-8” ?>
위와 같이 정리 합니다.
- 마지막으로 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
- [정리] 정보이론: 정보량 (Information), 엔트로피 ( Entropy ), 쿨백 라이블러 발산 (KL-Divergence), 크로스 엔트로피 ( Cross - Entropy ), maximum likelihood
- [발번역] Bag of words (BoW) - Natural Language processing
- Installing Anaconda and Jupyter notebook
- 다시 보는 Java : FileChannel transferTo()
- 다시 보는 Java : NIO Channel
- 다시 보는 Java : Socket-Direct-Protocol
- 다시 보는 Java
- Streamsets DataCollector Source Build
- Apache Helix Core Concepts
- Introduce Flipkart Aesop