Elastic search N-gram tokenizer

N-gram tokenizer

ngram 分词器,首先将text文本切分,执行时采用N-gram切割算法。

N-grams 算法,就像一个穿越单词的滑窗,是一个特定长度的持续的字符序列。这个适合于那些不太实用空格符的语言,或者有长的复合单词的语言,比如德语。

举个例子:
默认的, ngram tokenizer对初始化的text文本进行最小长度为1,最大长度为2的处理。

POST _analyze
{
  "tokenizer": "ngram",
  "text": "Quick Fox"
}

上面的配置输出如下:

[ Q, Qu, u, ui, i, ic, c, ck, k, "k ", " ", " F", F, Fo, o, ox, x ]

配置
  • min_gram :

在单词中最小字符长度,且默认为1

  • max_gram

在单词中最大字符长度,且默认为2

  • 符号分类

字母— 例如 a, b, ï or 京
数字— 例如 3 or 7
空格— 例如 " " or “\n”
标签符号— 例如 ! or "
象型符—  例如 $ or √
自定义符号 —  使用 custom_token_chars 来设置自己自定义的符号
custom_token_chars

你可能感兴趣的:(elasticsearch)