ElasticSearch系列——分词器

这篇具有很好参考价值的文章主要介绍了ElasticSearch系列——分词器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分词器

分词和分词器

Analysis∶文本分析是把全文本转换一系列单词(term/token)的过程,也叫分词
Analysis是通过Analyzer来实现的。分词就是将文档通过Analyzer分成一个一个的Term,每一个Term都指向包含这个Term的文档。

分词器的组成

  1. character filters(字符过滤器) : 在文本进行过滤前需要先进行预先处理
  2. tokenizers(分词器) : 对词句进行响应的分词
  3. token filter(token过滤器) : 将切分的单词进行加工,如大小写转化,去除介词等

在ES中默认会使用标准分词器standardAnalyer,其中英语会进行单词分词,中文则是单字分词

分词顺序

character filter ===> tokenizers ===> token filter

构成数量

character filter(大于等于0) ===> tokenizers(至少有1个) ===> token filter(大于等于0)

ES中的分词器

  1. Standard Analyzer : 默认分词器,小写处理
  2. Simple Analyzer-按照单词切分(符号被过滤),小写处理,中文按照空格进行分词
  3. Stop Analyzer -小写处理,停用词过滤(the,a,is)
  4. Whitespace Analyzer-按照空格切分,不转小写
  5. Keyword Analyzer-不分词,直接将输入当作输出

测试分词器

其中将standard修改为你要测试的即可

# 分词器
POST /_analyze
{
  "analyzer": "standard",
  "text": "你好我是张三 i am very happy"
}

指定分词器

分词器需要在指定映射的时候进行设置

#设置分词器
PUT /analy
{
  "mappings": {
    "properties": {
      "name":{
        "type": "text",
        "analyzer": "standard"
      }
    }
  }
}

IK分词器(中文分词)

https://github.com/medcl/elasticsearch-analysis-ik
es 分词器,笔记,# SpringCloud,微服务与中间件,elasticsearch,java,搜索引擎
需要我们注意的是IK分词词需要和你的ES版本相同
下载完后解压缩放入ES的/plugins目录下
es 分词器,笔记,# SpringCloud,微服务与中间件,elasticsearch,java,搜索引擎然后我们重启一下

测试使用IK分词器

ik分词器叫做ik_smartik_max_word他们俩在文本的拆分力度上有所不同,后者更加细致

# IK分词器
POST /_analyze
{
  "analyzer": "ik_smart",
  "text": "你好我是张三 i am very happy"
}

这里可以看到对中文的分词已经出来了
es 分词器,笔记,# SpringCloud,微服务与中间件,elasticsearch,java,搜索引擎

IK分词器自定义扩展词和停用词IK支持自定义扩展词典和停用词典

  • 扩展词典:就是有些词并不是关键词,但是也希望被ES用来作为检索的关键词,可以将这些词加入扩展词典。
  • 停用词典:就是有些词是关键词,但是出于业务场景不想使用这些关键词被检索到,可以将这些词放入停用词典。

我们可以直接去config/IKAnalyzer.cfg.xml文件中进行定义,你问我怎么知道的?人家README里写的

es 分词器,笔记,# SpringCloud,微服务与中间件,elasticsearch,java,搜索引擎
es 分词器,笔记,# SpringCloud,微服务与中间件,elasticsearch,java,搜索引擎

1. 修改xml文件

我们在扩展词典的配置中设置我们扩展词典的文件叫做self_ext.dic,这样我们就配置好了扩展词典的位置
es 分词器,笔记,# SpringCloud,微服务与中间件,elasticsearch,java,搜索引擎

2.创建扩展词典文件

由于我们现在只是配置了扩展词典的名字,但是实际上我们还没有这个词典,所以我们要对应创建出来

es 分词器,笔记,# SpringCloud,微服务与中间件,elasticsearch,java,搜索引擎

3.编写扩展词典

如下我们编辑self_ext.dic文件,这里注意扩展词只能每行写一个
我这里设置了张三,李四,王五作为扩展词
es 分词器,笔记,# SpringCloud,微服务与中间件,elasticsearch,java,搜索引擎

4.重启ES

5.测试扩展词

POST /_analyze
{
  "analyzer": "ik_smart",
  "text": "你好我是张三李四王五 i am very happy"
}

当然停用词也是一样
但是推荐大家直接使用定义好的扩展词和停用词

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
	<comment>IK Analyzer 扩展配置</comment>
	<!--用户可以在这里配置自己的扩展字典 -->
	<entry key="ext_dict">extra_main.dic</entry>
	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords">extra_stopword.dic</entry>
	<!--用户可以在这里配置远程扩展字典 -->
	<!-- <entry key="remote_ext_dict">words_location</entry> -->
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

es 分词器,笔记,# SpringCloud,微服务与中间件,elasticsearch,java,搜索引擎文章来源地址https://www.toymoban.com/news/detail-601130.html

到了这里,关于ElasticSearch系列——分词器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springcloud中间件-----分布式搜索引擎 Elasticsearch

    该笔记是根据黑马程序员的课来自己写了一遍的,b站有对应教程和资料 第一部分 第二部分 第三部分 预计看完跟着练习5小时足够 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如:

    2024年02月08日
    浏览(43)
  • ES(Elasticsearch)中间件

    文章目录 配置连接ES 全文搜索引擎 全文搜索引擎就是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户。 官网地址: 链接:

    2024年02月11日
    浏览(37)
  • Elasticsearch分词详解:ES分词介绍、倒排索引介绍、分词器的作用、停用词

    详见:https://blog.csdn.net/weixin_40612128/article/details/123476053

    2024年02月12日
    浏览(41)
  • Elasticsearch专栏-5.es基本用法-分词查询

    所谓分词,就是把一段语句,分割成一个个单词的过程。比如\\\"717 Hendrickson Place\\\"短语,分词后就是三个单词,即717、hendrickson、place。注意,分词后的单词默认都是小写。 分词查询,指的就是查询时,把要查询的语句(字符串)先进行分词,然后拿分词后的单词去文档集合中比

    2024年01月16日
    浏览(32)
  • es elasticsearch 十 中文分词器ik分词器 Mysql 热更新词库

    目录 中文分词器ik分词器 介绍 安装 使用分词器 Ik分词器配置文件 Mysql 热更新词库 介绍 中文分词器按照中文进行分词,中文应用最广泛的是ik分词器 安装 官网下载对应版本zip 下载  放到  plugins 目录 新建 ik文件夹 考入解析zip 重启 es //分成小单词 使用分词器 ik_max_word分成

    2024年02月07日
    浏览(51)
  • 微服务技术栈笔记从入门到跑路-SpringCloud+Gateway+Nacos+MQ+ES(保姆级)

    SpringCloud和Dubbo是微服务方案的实现 微服务技术对比 SpringCloud 和SpringBoot版本兼容需要对应 (左侧是SpringCloud的版本,右侧SpringBoot版本。两者版本需要一一对应,否者可能出现兼容性问题) (此笔记基于SpringCloud Hopxton.SR10和SpringBoot2.3.x进行记录) 微服务需要根据业务模块拆分

    2024年02月08日
    浏览(52)
  • 【中间件】ElasticSearch:ES的基本概念与基本使用

    Index索引、Type类型,类似于数据库中的数据库和表,我们说,ES的数据存储在某个索引的某个类型中(某个数据库的某个表中),Document文档(JSON格式),相当于是数据库中内容的存储方式 MySQL:数据库、表、数据 ElasticSearch:索引、类型、文档 ElasticSearch的检索功能基于其倒

    2024年02月04日
    浏览(36)
  • Elasticsearch07:ES中文分词插件(es-ik)安装部署

    在中文数据检索场景中,为了提供更好的检索效果,需要在ES中集成中文分词器,因为ES默认是按照英文的分词规则进行分词的,基本上可以认为是单字分词,对中文分词效果不理想。 ES之前是没有提供中文分词器的,现在官方也提供了一些,但是在中文分词领域,IK分词器是

    2024年02月03日
    浏览(70)
  • ElasticSearch系列——分词器

    Analysis∶文本分析是把全文本转换一系列单词(term/token)的过程,也叫分词 Analysis是通过Analyzer来实现的。分词就是将文档通过Analyzer分成一个一个的Term,每一个Term都指向包含这个Term的文档。 character filters(字符过滤器) : 在文本进行过滤前需要先进行预先处理 tokenizers(分词器) :

    2024年02月16日
    浏览(21)
  • 学好Elasticsearch系列-分词器

    本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 先看后赞,养成习惯。 点赞收藏,人生辉煌。 目录 规范化:normalization 字符过滤器:character filter HTML Strip Character Filter Mapping Character Filter Pattern Replace Character Filter 令牌过滤器(token filter) 大小写和停用词

    2024年02月14日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包