Elasticsearch分析器(Analyzer)

Elasticsearch分析器(Analyzer)

分析器概念

分词就是将一段文本按照一定的规则切分成以一个一个的关键字的过程

Elasticsearch的分析器(Analyzer)有三个组成部分:

  1. 字符过滤器(character filters)

    在一段文本分词之前,进行预处理,比如过滤html标签等

  2. 分词器(tokenizer)

    接收字符流,将其分解为单个分词,记录每个分词的顺序、位置、开始和结束字符偏移量等

  3. 分词过滤器(token filters)

    接受来自分词器的分词流,并且可以修改分词 (例如小写),删除分词(例如删除停用词) 或添加分词(例如同义词)

内置分析器(8.6版本)

  • 标准分析器

    默认分析器,按Unicode文本分割算法拆分,删除大多数标点符号,小写处理,删除停用词;支持中文,但

    只能按字拆分

  • 简单分析器

    按照非字母切分,小写处理

  • 空白分析器

    遇到空格的时候会进行分词

  • 停止分析器

    按照非字母切分,小写处理,删除停用词

  • 关键词分析器

    不分词,直接将输入当做输出

  • 模式分析器

    按正则表达式分词

  • 语言分析器

    对特定语言分词

  • 指纹分析器

    专业分析器,它创建一个指纹,可用于重复检测

自定义分析器

必须与Elasticsearch版本一致,解压后放到Elasticsearch的plugins文件夹下,重启Elasticsearch服务即可

elasticsearch-analysis-ik(简称ik,💕14.8k)

下载地址

https://github.com/medcl/elasticsearch-analysis-ik/releases

IK提供了两个分词算法:ik_smart和ik_max_word,其中ik_smart为最少切分,ik_max_word为最细粒度划分。

ik_max_word:会将文本做最细粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌",会穷尽各种可能的组合;

ik_smart:会做最粗粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,国歌"。

POST /_analyze
{
  "analyzer": "ik_max_word",
  "text": "中华人民共和国国歌"
}

elasticsearch-analysis-pinyin(简称pinyin,💕2.6k)

下载地址:

https://github.com/medcl/elasticsearch-analysis-pinyin/releases

elasticsearch-jieba-plugin(简称jieba,💕471)

下载地址

https://github.com/sing1ee/elasticsearch-jieba-plugin/tags

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值