如何在Elasticsearch中对韩语单词使用前缀查询?

时间:2014-12-01 02:09:32

标签: search elasticsearch normalization icu

我使用Elasticsearch在"英语"文档。 但是,当使用" 韩语"时,我在前缀查询时遇到了问题。词语的

详细信息,文档中包含"한글"等字词,我希望使用带有搜索字词的前缀查询来获取文档"한",还有"ㅎ"

我不能使用默认设置。 我看到它与icu_normalizernfd decomposition或其他内容有关。 但我无法完全理解我必须采取的方式来获得结果"한글"使用"ㅎ"搜索词。

有人可以帮助我吗?

提前致谢。

1 个答案:

答案 0 :(得分: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'