Elasticsearch Analyzer分析器剖析

做全文搜索就需要对文档分析、建索引。从文档中提取词元(Token)的算法称为分词器(Tokenizer),在分词前预处理的算法称为字符过滤器(Character Filter),进一步处理词元的算法称为词元过滤器(Token Filter),最后得到词(Term)。这整个分析算法称为分析器(Analyzer)。
文档包含词的数量称为词频(Frequency)。
搜索引擎会建立词与文档的索引,称为倒排索引(Inverted Index)。
Analyzer 按顺序做三件事:

  1. 使用 CharacterFilter 过滤字符
  2. 使用 Tokenizer 分词
  3. 使用 TokenFilter 过滤词

比如一段文字<p>Hello a WORLD</p>

  • 字符过滤器character filters
    首先,字符串按顺序通过每个 字符过滤器 。他们的任务是在分词前整理字符串。一个字符过滤器可以用来去掉HTML,或者将 & 转化成 and。
    此时变成 Hello a WORLD
  • 分词器 tokenizers
    其次,字符串被 分词器 分为单个的词条。一个简单的分词器遇到空格和标点的时候,可能会将文本拆分成词条。
    变成 Hello, a, WORLD
  • Token 过滤器 token filters
    最后,词条按顺序通过每个 token 过滤器 。这个过程可能会改变词条(例如,小写化 Quick ),删除词条(例如, 像 a, and, the 等无用词),或者增加词条(例如,像 jump 和 leap 这种同义词)。
    hello, world
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。