首页 > 代码库 > ES0.2 Analysis和Analyzer
ES0.2 Analysis和Analyzer
Analysis 和Analyzer
analysis:
1,对文本分词,分成适合做倒排索引的词语。
2,对词语做标准化(normalizing),比如统一大小写、缩写转换等。这样做的目的是为了提升可搜索的能力。
Analyzer:
Analyzer对document做分析(analysis)。一个Analyzer包含三部分:
- character filter:过滤器。它的作用是在分词之前整理文本,比如去掉html标签、转换&为and等。
- tokenizer:分词器。把文本分成可以组织倒排索引的词组。
- token filter:分词过滤。它的作用包括:转换大小写、删除停词、增加对应的同义词。
Build-in Analyzer:
Standard Analyzer:
标准分词,它根据字(word)边界分词,并且会滤除大部分标点符号。最后它会把分好的词转成小写。
Simple Analyzer:
只要遇到不是字母的字符时就分词,并且把词语小写化。
Whitespace Analyzer:
根据空白来分词,它不会小写化词语。
n-gram Analyzer:
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" ] } } } }
ES0.2 Analysis和Analyzer
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。