Solr 5.4.1설치 및 한글 분석기 설정

Solr-5.4.1 설치 및 한글 분석기 설정
  1. mecab-ko 설치
  2. mecab-ko-dic 설치
  3. mecab 테스트
    • mecab 테스트
      $ mecab -d /usr/local/lib/mecab/dic/mecab-ko-dic
      mecab 동작 테스트
  4. mecab-java 설치
    • mecab-java-0.996.tar.gz 다운로드
    • 설치
      $ tar -zxvf mecab-java-0.996.tar.gz
      $ cd mecab-java-0.996
      $ vi Makefile Makefile 수정 (MAC)
        INCLUDE=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/include
    •   all:
    •   $(CXX) -shared  $(TARGET)_wrap.o -o lib$(TARGET).dylib $(LIBS)
    •   $(JAVAC) -cp . test.java
    •   test:
    •   env DYLD_LIBRARY_PATH=. $(JAVA) test
    •   clean:
    •   rm -fr *.jar *.o *.dylib *.so *.class $(PACKAGE)/*.class

    • $ vi Makefile Makefile 수정 (Linux)
        INCLUDE=/ (자신의 java jdk path 설정)
    •   all:
    •   OpenJDK 사용시 "-O1" 로 변경.
    •   $(CXX) -O3 -c -fpic $(TARGET)_wrap.cxx  $(INC) 
    •   $(JAVAC) -cp . test.java

    • $ make
      $ cp MeCab.jar [solr 디렉터리]/server/lib/ext
      (LINUX)
      $ sudo cp libMeCab.so /usr/local/lib
      (MAC)
      $ mv mecab-java-0.996 mecab-java $ mv mecab-java /usr/local/bin/ $ vi ~/.profile
        export DYLD_LIBRARY_PATH=/usr/local/bin/mecab-java

    • $ source ~/.profile
  5. mecab-ko-lucene-analyzer 설치
  6. solr 설정
    • solrconfig.xml 설정
      $ vi [solr 디렉터리]/server/solr/configsets/data_driven_schema_configs/conf/solrconfig.xml 내용 추가
        <lib dir="${solr.install.dir:../../../..}/contrib/eunjeon/lib" regex=".*\.jar" />
    • managed-schema 설정
      $ vi [solr 디렉터리]/server/solr/configsets/data_driven_schema_configs/conf/managed-schema 내용 추가
        query에서는 복합명사 분해를 하지 않는 경우
    •   <!-- Korean -->
    •   <dynamicField name="*_txt_ko" type="text_ko" indexed="true" stored="true"/>
    •   <fieldType name="text_ko" class="solr.TextField" positionIncrementGap="100">
    •     <analyzer type="index">
    •       <tokenizer class="org.bitbucket.eunjeon.mecab_ko_lucene_analyzer.StandardTokenizerFactory"/>
    •     </analyzer>
    •     <analyzer type="query">
    •       <tokenizer class="org.bitbucket.eunjeon.mecab_ko_lucene_analyzer.StandardTokenizerFactory" compoundNounMinLength="100"/>
    •     </analyzer>
    •   </fieldType>
    •   index, query 모두 복합명사 분해를 하는 경우
    •   <!-- StandardTokenizerFactory는 compoundNounMinLength를 속성으로 받을 수 있습니다.
    •       분해를 하는 복합명사의 최소 길이를 뜻하며 기본 값은 3입니다. 이 경우, 길이가 3미만인 복합명사는 분해하지 않습니다.
    •   -->
    •   <!-- Korean -->
    •   <dynamicField name="*_txt_ko" type="text_ko" indexed="true" stored="true"/>
    •   <fieldType name="text_ko" class="solr.TextField" positionIncrementGap="100">
    •     <analyzer> 
    •       <tokenizer class="org.bitbucket.eunjeon.mecab_ko_lucene_analyzer.StandardTokenizerFactory" compoundNounMinLength="3"/>
    •     </analyzer>
    •   </fieldType>
  7. solr 실행
    $ cd [solr 디렉터리]]
    $ ./bin/solr start -noprompt -Djava.library.path=/usr/local/bin/mecab-java
  8. solr Core 추가
    • Core 추가
      $ ./bin/solr create -c notes
    • Core schema 수정
      $ vi solr/notes/conf/managed-schema
  9. solr 중지
    ./bin/solr stop -all
solr 설치 관련 참고 사이트

댓글

이 블로그의 인기 게시물

ansible ssh 접속 에러 해결

OpenWeatherMap API 이용해서 날씨 데이터 가져오기