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 ]
在单词中最小字符长度,且默认为1
在单词中最大字符长度,且默认为2
字母— 例如 a, b, ï or 京 数字— 例如 3 or 7 空格— 例如 " " or “\n” 标签符号— 例如 ! or " 象型符— 例如 $ or √ 自定义符号 — 使用 custom_token_chars 来设置自己自定义的符号 custom_token_chars