elasticsearch分析器

elasticsearch分析器,第1张

elasticsearch分析器

文章目录
    • 分词器和过滤器作用
    • 过滤器
      • 词干化(stemming)
      • 高频词(stop word)
      • 小写(lowercase)

分词器和过滤器作用

analyzer由一个分词器(tokenizers)和多个过滤器(tokenfilter)组成,分词器对日志进行分词切分(token),过滤器遍历分词器切分结果中每个分词做处理,比如将字母全部变成小写。

最后生成的分词数组,对数组中每个分词做倒排索引。

举个例子:

日志: “She’s beautiful eyes”

  1. 将文本分成单词: “She’s beautiful eyes” => [She’s,beautiful,eyes]
  2. 将单词大写部分转小写: “She’s” => “she’s”
  3. 将所有格形式去掉:“she’s” => “she”

第1步叫做分词过程,通常英语单词是靠换行和空格分词。
第2步和第3步是过滤器,用于分词结果数组的每个元素做处理。

总结:

  • 分词器: 使用分词规则将句子切分成一个个分词(可以叫token,term,word etc…),中文和英文的分词规则不同,使用的分词器也不同,如果不指定字段的analyzer,默认的分析器就会被使用,默认的分词器只能对英文(按空格和换行符)进行分词。

  • 过滤器: 对分词进一步处理,如大小写转换,删除等,下面会具体整理下过滤器的大致种类。

过滤器

过滤器分成很多种不同类型,使用过滤器会使搜索更加精准快速。

过滤器的输入是一个分词数组,对数组中的每个分词使用预定义函数进行处理,输出处理后的分词数组,用于索引。

词干化(stemming)

stemming是将一个单词归纳为它的词干。

比如我们在搜索时,想要搜books(复数形式),那么book's(所有格形式), booking(动词形式)都会被搜索出来。是因为在倒排索引中存储的都是词干book

高频词(stop word)

一些高频词,比如英语里的"the",“a”,"is"等,对这种词做索引意义不大,因为所有文档几乎都有,所以过滤器会把这类高频分词从分词数组删除。

小写(lowercase)

搜索Book,那么book也会出来,是因为索引存储全是小写的"book".

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5688327.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存