ElasticSearch(8)---IK分词器

在这里插入图片描述

上一篇:ElasticSearch(7)—倒排索引

1. 什么是IK分词器?

  我们在使用百度搜索引擎的时候,经常会发现有一些标红的关键词,这些被标记的关键词分的还是非常精准的:
在这里插入图片描述
  这里对中文进行分词使用的就是IK分词器技术,所谓分词就是将一段文字划分为一个个的关键字,在搜索的时候会把搜索的文字进行分词,对文档中的数据也进行分词,然后会将分词后的关键字进行匹配,默认的中文分词是将每个字作为一个词,比如好好学习使用中文分词器拆分之后就是。这种分词器显然不够优秀,而IK分词器提供了两种分词算法:ik_smartik_max_word

要使用IK分词器,首先需要下载GitHub所有版本下载地址,将下载好得ik分词器放到elasticsearchplugins目录下:
在这里插入图片描述

注意:IK分词器与elasticsearch存在兼容问题,所以下载的ik分词器需要与当前的elasticsearch版本一致

Ik分词器7.6.2版本下载
提取码:3bfr

将下载好得ik分词器放到elasticsearch得plugin目录下之后,启动es,我们会看到es会自动加载ik分词器:
在这里插入图片描述
打开kibana的开发工具:
在这里插入图片描述
测试两种不同的分词算法:

2. ik_smart 分词算法

  ik_smart(最少切分)
在这里插入图片描述
在这里插入图片描述

3. ik_max_word 分词算法

  ik_smart(最细粒度切分)
在这里插入图片描述
两种分词算法个人感觉ik_smart相当于就是一个最粗粒度划分,而ik_max_word是最细粒度划分

4. 如何自定义词库

ik分词器可以支持自定义词库,比如我们想让分词器识别“明我”,就需要自定义一个词库:

  1. 在ik分词器的config下面新建一个my.dic文件,文件中编辑输入明我
  2. 修改IKAnalyzer.cfg.xml
<?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">my.dic</entry>
	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords"></entry>
	<!--用户可以在这里配置远程扩展字典 -->
	<!-- <entry key="remote_ext_dict">words_location</entry> -->
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

在这里插入图片描述
  然后重启elasticsearch进行测试:

未自定义词库前的分词:
在这里插入图片描述
使用自定义词库之后的分词:
在这里插入图片描述
可以看到分词器将明我识别为一个词。说明使用自定义词库成功。

下一篇:ElasticSearch(9)—Rest风格
原文地址:https://www.cnblogs.com/wgty/p/12810391.html