2015년 8월 25일 화요일

Elasticsearch에서 Mecab Ko 동의어사전 적용하기

Elasticsearch Settings > Analysis > Filter 설정

Index analysis는 Analyzer, Tokenizer, TokenFilter로 구성된다.


TOKEN FILTER 종류
33개 
tokenizer로 부터 token stream을 받아서 token에 대해 lower case, add, delete 등을 처리

Synonym Token Filter
동의어를 적용하는 필터. Elasticsearch에 포함되어 있다.

# 설정 예제
PUT /shop
{
"settings" : {
    "index":{
      "analysis":{
        "filter" : {
            "synonym" : {
                "type" : "synonym",
                "synonyms_path" : "analysis/synonyms.txt"
            }
        },
        "analyzer":{
          "korean":{
            "filter" : [
              "standard",
              "lowercase",
              "stop",
              "synonym"  
            ],
            "type":"custom",
            "tokenizer":"mecab_ko_standard_tokenizer"
          }
        },
        "tokenizer": {
          "mecab_ko_standard_tokenizer": {
            "type": "mecab_ko_standard_tokenizer",
            "mecab_args": "-d /home/elasticsearch/knowledge/mecab/dic/mecab-ko-dic"
          }
        }
      }
    }
 }
}

# edit : $ES_HOME/config/analysis/synonym.txt 
노트북,labtop,notebook

# 확인 명령
$ curl -XGET ‘localhost:9200/shop/_analyze?analyzer=korean&pretty=true' -d ‘노트북'

# 노트북 labtop notebook  

댓글 없음:

댓글 쓰기