elasticsearch 分词

analysis

分析是将文本 text 转化为 token 或 term 的过程。token 或 term 随后被添加至倒排索引(inverted index)用于检索。分析(analysis)过程是由分词器(analyzer)来完成的,分词器包括内置(built-in)分词器和自定义(cutsom)分词器。
分析(analysis)可以在以下两种情况下发生:

  1. index time
  2. search time

analyzer (分词器)

一个分词器由以下三部分组成,内置分词器主要是为了适应特定语言和文本类型,打包了不同组合的组件,组成了若干种预置分词器。以下组件还能单独暴露,*组合成自定义分词器。

  • character filters

    • 以字符流的形式接收原始文本,增加、删除或修改字符,例如:剥离html标签,转换 (٠‎١٢٣٤٥٦٧٨‎٩‎) 为阿拉伯数字 (0123456789) 等。
    • 一个分词器可以包含0到多个character filters
  • tokenizers

    • 以字符流的形式接收文本,将它拆分成单个的 token (英文单词、中文单字或词语),输出 token stream (分词流)。
    • tokenizer 还负责记录每个分词的位置顺序,每个分词的首末字母的偏移量(offsets)
    • 一个分词器有且仅有一个 tokenizer
  • token filters

    • 以 token stream (分词流)的形式接收文本,增加、删除或修改分词,例如:单词大写转为小写,去除英文停用词 the,同义词 synonym 替换等操作
    • token filter 不修改分词的位置(position)和字符偏移量(character offsets)
    • 一个分词器可以包含0到多个token filters
上一篇:服务器实战rootkit检测


下一篇:Elasticsearch Node.js