https://nocode2k.blogspot.com에서 이사온 글 입니다.
CentOS 6.x 환경에서 SOLR와 Elasticsearch에서 한국어 형태소분석기인 Mecab Ko를 사용하기 위해서는 먼저 아래와 같이 설치 및 환경설정이 필요하다.
(2015년 8월 20일 현재 은전한닢 프로젝트에서는 mecab ko 사전을 사용하는 스칼라로 개발된 형태소분석기도 배포중이다.)
1.1 C++ 컴파일러 설치
yum install gcc-c++
1.2 Java 다운로드 및 설치
사이트 다운로드 : http://www.oracle.com/technetwork/java/javase/downloads/index.html
리눅스 command 다운로드
32 bit linux use this:
curl -v -j -k -L -H "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-i586.rpm > jdk-8u51-linux-i586.rpm
For 64 bit:
curl -v -j -k -L -H "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-x64.rpm > jdk-8u51-linux-x64.rpm
Install the rpm:
rpm -ivh jdk-8u51-linux-i586.rpm
mecab-ko는 한국어 특성에 맞는 기능이 추가된 MeCab의 fork 프로젝트이다.
mecab-ko 다운로드 페이지에서 mecab-ko의 소스를 다운로드 받고 설치한다.
사이트 다운로드: https://bitbucket.org/eunjeon/mecab-ko/downloads
리눅스 command 다운로드 및 설치
wget https://bitbucket.org/eunjeon/mecab-ko/downloads/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 --with-charset=utf-8
make
make check
make install
# /usr/local/bin 아래에 실행바이너리 파일이, /usr/local/lib 아래에 라이브러리가, 그리고 /usr/local/etc 아래에 설정 파일인 mecabrc가 설치된다.
mecab-ko-dic 다운로드 페이지에서 mecab-ko-dic의 최신버전을 다운로드 받는다.
사이트 다운로드: https://bitbucket.org/eunjeon/mecab-ko-dic/downloads
리눅스 command 다운로드 및 설치
wget https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.0.1-20150707.tar.gz
tar zxvf mecab-ko-dic-2.0.1-20150707.tar.gz
cd mecab-ko-dic-2.0.1-20150707
./configure --with-charset=utf-8
make
make install
# /usr/local/lib/mecab/dic/mecab-ko-dic 아래에 사전이 설치된다.
$ /usr/local/bin/mecab -d /usr/local/lib/mecab/dic/mecab-ko-dic
mecab-ko-dic은 MeCab을 사용하여, 한국어 형태소 분석을 하기 위한 프로젝트입니다.
mecab SL,,,,,,,
- SY,,,,,,,
ko SL,,,,,,,
- SY,,,,,,,
dic SL,,,,,,,
은 JX,,T,은,,,,
MeCab SL,,,,,,,
을 JKO,,T,을,,,,
사용 NNG,,T,사용,,,,
하 XSV,,F,하,,,,
여 EC,,F,여,,,,
, SC,,,,,,,
한국어 NNG,,F,한국어,Compound,,,한국/NNG/+어/NNG/
형태소 NNG,,F,형태소,Compound,,,형태/NNG/+소/NNG/
분석 NNG,,T,분석,,,,
을 JKO,,T,을,,,,
하 VV,,F,하,,,,
기 ETN,,F,기,,,,
위한 VV+ETM,,T,위한,Inflect,VV,ETM,위하/VV/+ᆫ/ETM/
프로젝트 NNG,,F,프로젝트,,,,
입니다 VCP+EF,,F,입니다,Inflect,VCP,EF,이/VCP/+ᄇ니다/EF/
. SF,,,,,,,
EOS
사이트 다운로드: https://bitbucket.org/eunjeon/mecab-ko-lucene-analyzer
리눅스 command 다운로드 및 설치
wget https://bitbucket.org/eunjeon/mecab-java/downloads/mecab-java-0.996.tar.gz
tar -zxvf mecab-java-0.996.tar.gz
cd mecab-java-0.996
# Makefile 수정
vi Makefile
# Makefile 에서 INCLUDE 변수에 java include directory를 설정해준다.
INCLUDE=/usr/java/jdk1.8.0_51/include
# Makefile에서 GCC optimization 옵션을 O3에서 O1으로 변경한다.
# 은전한닢에서는 OpenJDK사용시 변경하라고 되어 있으나 Oracle JDK에서도 변경해줘야 한다.
all:
(CXX) -O1 -c -fpic $(TARGET)_wrap.cxx $(INC) $(CXX) -shared $(TARGET)_wrap.o -o lib(TARGET).so $(LIBS)
$(JAVAC) $(PACKAGE)/.java
$(JAVAC) test.java
$(JAR) cfv $(TARGET).jar $(PACKAGE)/.class
# 저장
:wq
make
cp libMeCab.so /usr/local/lib
CentOS에서 Elasticsearch를 실행하는 계정의 환경설정파일(예: .bashrc)에 라이브러리 경로를 추가한다.
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
export LD_LIBRARY_PATH
./bin/plugin --install analysis-mecab-ko-0.17.0 --url https://bitbucket.org/eunjeon/mecab-ko-lucene-analyzer/downloads/elasticsearch-analysis-mecab-ko-0.17.0.zip
8.1 Elasticsearch 실행
bin/elasticsearch -Djava.library.path=/usr/local/lib
8.2 index 생성
curl -XPUT ‘localhost:9200/INDEX_NAME’
예)
curl -XPUT ‘localhost:9200/eunjeon’
8.3 index close
curl -XPOST 'localhost:9200/eunjeon/_close’
8.3 analyzer 추가
curl -XPUT 'localhost:9200/eunjeon/_settings’ -d ’{
"index": {
“analysis”: {
"analyzer": {
"korean": {
"type": “custom”,
"tokenizer": “mecab_ko_standard_tokenizer”
}
}
}
}
}’
테스트)
curl -XGET 'localhost:9200/eunjeon/_analyze?analyzer=korean\&pretty=true -d '은전한닢 프로젝트'
8.4 index open
curl -XPOST 'localhost:9200/eunjeon/_open’
8.5 type에 대한 _mapping 설정 추가
한글 형태소 분석기 적용된 mapping 추가의 예)
curl -XPUT 'localhost:9200/eunjeon/_mapping/survey’ -d ’{
"properties":{
"title":{
"type":"string",
"analyzer":"korean"
}
}
}’
설정값 확인)
curl -XGET 'localhost:9200/eunjeon/_settings?pretty=1’
[참고 사이트]
은전한닢 프로젝트: http://eunjeon.blogspot.kr
은전한닢 프로젝트 구글 포럼: https://groups.google.com/forum/#!forum/eunjeon