2014-12-01 4 views
1

"영어"문서에서 Elasticsearch를 사용하여 잘 해왔습니다. 그러나 "한국어"단어를 사용할 때 접두사 쿼리에 걸렸습니다.Elasticsearch에서 한국어 단어의 접두사 쿼리는 어떻게 사용할 수 있습니까?

자세한 내용은 문서에 "한글"과 같은 단어가 포함되어 있으며 검색어가 "한" 일뿐만 아니라 "ㅎ"이 아닌 접두사 쿼리를 사용하여 문서를 가져 오려고합니다.

기본 설정을 사용하여 할 수 없었습니다. icu_normalizer 또는 nfd decomposition 또는 다른 것과 관련이있는 것으로 나타났습니다. 그러나 "ㅎ"검색어를 사용하여 "한글"결과를 얻는 방법을 완전히 이해할 수는 없습니다.

나를 도와 줄 사람이 있습니까?

미리 감사드립니다.

답변

1

이 코드가 도움이 될 수 있습니다.

curl -XPUT '127.0.0.1:9200/test' -d '{ 
    "settings" : { 
    "analysis": { 
     "tokenizer" : { 
     "autocomplete_tokenizer" : { 
      "type" : "edgeNGram", 
      "min_gram" : "1", 
      "max_gram" : "30", 
      "token_chars": ["letter", "digit"] 
     } 
     }, 
     "char_filter" : { 
     "nfd_normalizer" : { 
      "type" : "icu_normalizer", 
      "name": "nfc", 
      "mode": "decompose" 
     } 
     }, 
     "analyzer": { 
     "autocomplete_analyzer": { 
      "type": "custom", 
      "char_filter": ["nfd_normalizer"], 
      "tokenizer": "autocomplete_tokenizer" 
     } 
     } 
    } 
    } 
}' 

curl '127.0.0.1:9200/test/_analyze?pretty=1&analyzer=autocomplete_analyzer' -d '아버지가 방에 들어가신다. 태권-V' 
+0

색인 생성 전용으로 autocomplete_tokenizer를 사용하십시오. 쿼리 할 때 다른 tokenizer 및 nfd 필터를 사용할 수 있습니다. –