'dictionary'에 해당되는 글 2건

  1. 2021.07.06 [Elasticsearch] arirang dictionary 에 영어+한글 복합어 분해 추가.
  2. 2019.12.02 [Elasticsearch] elasticsearch-analysis-arirang plugin 내 custom dic 적용

[Elasticsearch] arirang dictionary 에 영어+한글 복합어 분해 추가.

Elastic/Elasticsearch 2021. 7. 6. 14:59

그냥 작은 운영 팁 정도 입니다.

 

영어+한글로 작성된 경우 둘 다 사전에 등록 되어 있지 않다고 하면 아래와 같이 등록을 하면 됩니다.

 

예) kr모터스

extension.dic 에 한글 "모터스" 만 등록 합니다.

모터스,100000000X

 

POST http://localhost:10800/_analyze

Request)

{

"tokenizer": "arirang_tokenizer",

"filter": [

"arirang_filter"

],

"text": "kr모터스"

}

 

Response)

{

"tokens": [

{

"token": "kr모터스",

"start_offset": 0,

"end_offset": 5,

"type": "korean",

"position": 0

},

{

"token": "kr",

"start_offset": 0,

"end_offset": 2,

"type": "word",

"position": 0

},

{

"token": "모터스",

"start_offset": 2,

"end_offset": 5,

"type": "korean",

"position": 1

}

]

}

:

[Elasticsearch] elasticsearch-analysis-arirang plugin 내 custom dic 적용

Elastic/Elasticsearch 2019. 12. 2. 17:28

DM 주신 분이 계셔서 해결 방법을 올려 드립니다.

먼저 아래 글을 읽어 보시면 이해 하시는데 도움이 되실 겁니다.

 

이전 글)

https://jjeong.tistory.com/1281

 

작성 시점의 글은 elasticsearch 5.x 대 버전이라 7.x 에서는 환경 설정 방법이 변경이 되었습니다.

그래서 이전 문서에서 이야기 하는 방법으로 classpath 설정을 하시면 동작 하지 않을 수 있습니다. 

 

7.x 에서는 아래와 같이 설정 하신 후 custom dic 을 적용 하시면 사용 하실 수 있습니다.

 

수정 할 파일)

$ bin/elasticsearch-env

- 5.x에서는 elasticsearch.in.sh 파일을 수정 했으나 7.x 에서는 변경이 되었습니다.

 

수정 내용)

ES_CLASSPATH="$ES_HOME/lib/*"

- 이 위치에 사전 파일에 대한 path 설정을 하시면 안됩니다.

- 이유는 ES_PATH_CONF 환경 변수에 대한 설정이 되어 있지 않기 때문에 인식을 못합니다.

- 아래와 같이 ES_CLASSPATH 를 라인에 추가해 주시면서 dictionary path 를 추가 하셔야 합니다.

 

ES_CLASSPATH="$ES_CLASSPATH:$ES_HOME/config/dictionary"

# check the Java version
"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.java_version_checker.JavaVersionChecker

 

이와 같이 설정을 맞쳤다면 elasitcsearch 를 실행 시켜서 정상적으로 형태소 분석이 이루어 지는지 확인 하시면 됩니다.

인명 사전 정보가 없기 때문에 본인 이름을 넣어서 테스트 해보시면 됩니다.

 

: