본문 바로가기

카테고리 없음

[ror + sunspot + solr + lucene] 한글 검색 되게 하는 법

는법은 먼저 koreananalyzer_20090629.jar 압축을 풀고

그리고 

KoreanFilterFactory.java와 KoreanTokenizerFactory.java 를 작성하고

그리고 압축푼 jar안에 있는 jar들을 참고하여 컴파일을 아래처럼 하고

javac -classpath javac -classpath ./lib/WEB-INF/lib/apache-solr-core-1.3.0.jar:./lib/WEB-INF/lib/lucene-core-2.4-dev.jar:./lib/WEB-INF/lib/lucene-analyzers-2.4-dev.jar:/home/eunchul/src/java/koreananalyzer/koreananalyzer_090629.jar Korean{Filter,Tokenizer}Factory.java 

요런식으로 컴파일해서 각각 클래스 파일을 만들고 요걸 다시  koreananalyzer_20090629.jar 압축 푼 데에 아래 경로에 복사하고

cp *.class /home/eunchul/src/java/koreananalyzer/org/apache/lucene/analysis/kr 

다시 압축하고

 jar cvf koreananalyzer.jar

요jar파일을  solr.war 를 압축풀어서 고 안에 lib 폴더 안에 넣고

다시 압축한다음

아래와 같은 solr.war가 깔려있는 폴더에 덮어쓴다 (하기전에 백업 필수)

/usr/local/lib/ruby/gems/1.9.1/gems/sunspot_solr-1.3.0/solr/webapps/solr.war

그리고 schema.xml 도 변경해줘야 한다.

usr/local/lib/ruby/gems/1.9.1/gems/sunspot_solr-1.3.0/solr/solr/conf/schema.xml

아래와 같은 식으로

<analyzer>
 <!-- <tokenizer class='solr.StandardTokenizerFactory' /> -->
        <tokenizer class='org.apache.lucene.analysis.kr.KoreanTokenizerFactory' />
        <!-- <filter class='solr.StandardFilterFactory' /> -->
        <filter class='org.apache.lucene.analysis.kr.KoreanFilterFactory' />
        <filter class='solr.LowerCaseFilterFactory' />
      </analyzer>

하고 나서 rake sunspot:solr:stop 하고 다시 스타트해야 적용된다.

아래 사이트를 참고하였다.

http://cafe.naver.com/korlucene.cafe

http://www.gnujava.com/board/article_view.jsp?article_no=3916&board_no=5&table_cd=EPAR01&table_no=01