标签:
1,对文本分词,分成适合做倒排索引的词语。
2,对词语做标准化(normalizing),比如统一大小写、缩写转换等。这样做的目的是为了提升可搜索的能力。
Analyzer对document做分析(analysis)。一个Analyzer包含三部分:
标准分词,它根据字(word)边界分词,并且会滤除大部分标点符号。最后它会把分好的词转成小写。
只要遇到不是字母的字符时就分词,并且把词语小写化。
根据空白来分词,它不会小写化词语。
n-gram分词可以用于前后模糊的查询方式,既可以用于查找也可以用于实现搜索引擎的自动补全功能。这是因为n-gram会把类似“ABCD”的词分成:AB、ABC、ABCD、BC、BCD、CD。
如果采用n-gram分词来建立倒排索引会很大程度上碰着索引大小,如果只是用在前缀补全上可以选择edge n-gram。
ES内置了n-gram的tokenizer,可以如下配置实现n-gram Analyzer:
"settings" : { "analysis" : { "analyzer" : { "ngram_2_10" : { "tokenizer" : "ngram_2_10_tokenizer" } }, "tokenizer" : { "ngram_2_10_tokenizer" : { "type" : "nGram", "min_gram" : "2", "max_gram" : "10", "token_chars": [ "letter", "digit" ] } } } }
标签:
原文地址:http://my.oschina.net/pangyangyang/blog/364464