메뉴얼(http://wiki.apache.org/solr/DataImportHandler)이 있기는 하지만 직관적이지 않아 이리저리 검색도 해보고 문의해서 정리한다.
 
Window 7
Tomcat 5.5.35,
Apache Solr 3.5.0
Oracle 10g

톰켓 설치 경로
D:\apache-solr\tomcat

/conf/server.xml
<Connector port="8983" ..... URIEncoding="UTF-8" />
포트는 편하신것으로 하면 될듯하다.
Encoding 는 검색할때 Request 호출 시 한글 깨짐을 방지하기 위함이다.(해당 WAS에 따라서 또는 소스레벨에서 적절하게 하면 될듯하다.)

/bin/catalina.bat
set CATALINA_HOME=D:\apache-solr\tomcat
set JAVA_OPTS=%JAVA_OPTS% -Dsolr.solr.home=D:\apache-solr\solr ... 기존 옵션...

/common/lib/ojdbc14.jar 복사하자.(Oracle)

Solr 작동 소스 경로
D:\apache-solr\tomcat\webapps\solr
Apache-solr-3.5.0.zip 파일 하위 dist/apache-solr-3.5.0.war 파일을 solr.war 로 변경하여 복사한다.
Apache-solr-3.5.0.zip 파일 하위 dist/apache-solr-dataimporthandler-3.5.0.jar, apache-solr-dataimporthandler-extras-3.5.0.jar 두 파일을 WEB-INF/lib 하위에 복사한다.
(Solr 설정파일 colrconfig.xml <lib> 설정으로도 할 수 있지만 간편히 복사하자.

Solr 설정파일 경로
D:\apache-solr\solr 
Apache-solr-3.5.0.zip 파일 하위 example/solr 폴더를 복사한다.
/conf/solrconfig.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
    </lst>
</requestHandler>
추가 하자 data-config.xml 파일은 같은경로에 두자.
/conf/data-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:test" user="test" password="test"/>

<document name="products">
        <entity name="item" query="SELECT ID, TITLE FROM TB_DATA">
<field name="id" column="ID" />
<field name="title" column="TITLE" />
        </entity>
    </document>
</dataConfig> 

한글형태소분석기는 http://cafe.naver.com/korlucene/462 를 참조하자.

이제 Tomcat 시작하고
http://localhost:8983/solr/dataimport?command=full-import 하면 인덱싱 된다.
http://localhost:8983/solr/admin 에서 *:* 모두 검색해보자.

 
 
Lucene 2.x 버전에서 3.x 번으로 업그레이드 검토 하던 중 Fastcat이란걸 알게 됐다.

그래서 현재 2.x 로 개발된것과  Fastcat을 동일환경으로 약 13만건의 데이터로 테스트 해본 결과  Fastcat 이 인덱스속도 약 2배, 검색속도 약 100배의 속도차이가 보였다.
(사실 검색속도는 7ms 와 300ms 라서 큰 의미가 없지만, 인덱스속도는 40s와 2m의 차이라서 의미가 약간? 컷다. 로컬환경이라 신뢰도가 떨어질 수 있다.)
* 위 잘못 된비교로 정정, Lucene 3.5 으로 셈플링 한 결과 2.3 버전과 성능면은 크게 다르지 않았다.
* Solr 기반 테스트 시작... 


우선  Fastcat 은  별도의 개발 없이 웹관리자의 셋팅만으로 검색환경 구축이 마무리 되었다.
약 10분이면 셋팅완료!!

Lucene 2.x 으로 개발된 환경이 유지보수로 몇년간 이어오면서 불필요한 오버헤드가 있을것도 감안 해야겠다.
또한 형태소 분석 알고리즘도 다르겠다.

시간 나면 Lucene 3.x 버전으로 셈플링해서 테스트 해봐야겠다.

ps. Lucene이나  Fastcat 모두 크롤링은 지원되지 않는다.

[결과]

데이터 건수 : 130,268건

패스트캣 indexer 소요시간 : 약 45초
루씬 2.3 indexer 소요시간 : 약 2분 패스트캣과 약 2배
루씬 3.5 indexer 소요시간 : 약 2.1분 패스트캣과 약 3배
Solr 3.5 indexer 소요시간 : 약 1.3분 패스트캣과 약 2배

패스트캣 sercher 소요시간 : 약 7밀리초
루씬 2.3 sercher 소요시간: 약 700밀리초 패스트캣과 약 100배
루씬 3.5 sercher 소요시간: 약 187밀리초 패스트캣과 약 26배
Solr 3.5 sercher 소요시간: 약 23밀리초 패스트캣과 약 8배
너무 작은 차이로 의미 없음

데이터 검수 : 529,188건

패스트캣 indexer 소요시간 : 1분 26초
Solr 3.5 indexer 소요시간 : 5분 30초

패스트캣 sercher 소요시간 : 48밀리초

Solr 3.5 sercher 소요시간: 73밀리 


패스트캣 배포/커뮤니티 사이트 - http://www.getfastcat.org/ 

+ Recent posts