Solr 5.4.1설치 및 한글 분석기 설정
Solr-5.4.1 설치 및 한글 분석기 설정
- mecab-ko 설치
- mecab-0.996-ko-0.9.2.tar.gz 다운로드
- 설치
$ tar -zxvf mecab-0.996-ko-0.9.2.tar.gz
$ cd mecab-0.996-ko-0.9.2
$ ./configure
$ make
$ make check
$ sudo make install - mecab-ko-dic 설치
- mecab-ko-dic-2.0.1-20150920.tar.gz 다운로드
- 설치
$ tar -zxvf mecab-ko-dic-2.0.1-20150920.tar.gz
$ cd mecab-ko-dic-2.0.1-20150920
$ ./configure
$ make
$ sudo make install - mecab 테스트
- mecab 테스트
$ mecab -d /usr/local/lib/mecab/dic/mecab-ko-dic
mecab 동작 테스트 - 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- mecab-ko-lucene-analyzer 설치
- mecab-ko-lucene-analyzer-0.19.0.tar.gz 다운로드
- mecab-ko-mecab-loader 복사
$ cp mecab-ko-mecab-loader-0.19.0.jar [solr 디렉터리]/server/lib/ext - mecab-ko-lucene-analyzer 복사
$ cd [solr 디렉터리]/contrib
$ mkdir -p eunjeon/lib - 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>
- solr 실행
$ cd [solr 디렉터리]]
$ ./bin/solr start -noprompt -Djava.library.path=/usr/local/bin/mecab-java - solr Core 추가
- Core 추가
$ ./bin/solr create -c notes - Core schema 수정
$ vi solr/notes/conf/managed-schema - solr 중지
./bin/solr stop -all
solr 설치 관련 참고 사이트
댓글
댓글 쓰기