分词器以及ik中文分词器

分词器以及ik中文分词器

概念

在这里插入图片描述

在这里插入图片描述

ik分词器的安装

因为es自带的分词器对英文非常友好,但是对中文很不友好,所以我们需要安装一个ik分词器。

特点

​ IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包;

​ 是一个基于Maven构建的项目;

​ 具有60万字/秒的告诉处理能力;

​ 支持用户词典扩展定义;

环境准备

Elasticsearch需要使用ik,就要先构建ik的jar包,这里要用到maven包管理工具,而maven需要java环境,而Elasticsearch内置了jdk,所以可以将JAVA_HOME设置为Elasticsearch内置的jdk。

设置jdk环境变量
vim /etc/profile
#在文件末尾添加jdk的环境变量
export JAVA_HOME=/opt/elasticsearch-7.16.2/jdk
export PATH=$PATH:${JAVA_HOME}/bin

#保存退出后,重新加载profile
source /etc/profile
下载maven安装包并解压

在这里插入图片描述

设置path

打开文件

vim /etc/profile.d/maven.sh

将下面的内容复制到文件,保存

export MAVEN_HOME=/opt/apache-maven-3.8.4
export PATH=${MAVEN_HOME}/bin:${PATH}

设置好Maven的路径之后,需要运行下面的命令使其生效

source /etc/profile.d/maven.sh
验证maven是否安装成功
mvn -v

在这里插入图片描述

下载IK分词器并安装

下载地址:https://github.com/medcl/elasticsearch-analysis-ik

在这里插入图片描述

然后把zip包安装到elasticsearch/plugins目录下新建的目录analysis-ik,并解压,如下图:

在这里插入图片描述

然后解压ik分词器,因为ik分词器是zip包,所以需要使用unzip命令解压,如下图:

在这里插入图片描述

解压之后需要把ik的config目录中的所有内容复制到elasticsearch-7.16.2的config配置文件中,如下图:

在这里插入图片描述

最后记得一定要重启Elasticsearch服务!!!

使用IK分词器

IK分词器有两种分词模式:ik_max_word和ik_smart模式。

1.ik_max_word

会将文本做最细颗粒度的拆分,如下图:

在这里插入图片描述

2.ik_smart

这个分词模式的颗粒度比较粗,如下图:

在这里插入图片描述

查询文档

词条查询:term

​ 词条查询不会分析查询条件,只有当词条和查询字符串完全匹配时才匹配搜索。

全文查询:match

​ 全文查询会分析查询条件,先将查询条件进行分词,然后查询,求并集。

term词条查询

term词条查询的例子如下图:

在这里插入图片描述

在这里插入图片描述

为什么什么结果都没有查出来呢?主要是因为ES默认使用的是standar分词器,会把中文一个字一个字的分,所以查不到,如果我们查询的是"北"就能成功查询出来数据了,如下图:

在这里插入图片描述

因此我们在创建索引的时候,就要手动的添加索引为ik分词器,要不然ES使用的一直是默认的standar分词器。

在这里插入图片描述

然后添加三条文档,如下图:

在这里插入图片描述

查询一下结果,如下图:

在这里插入图片描述

重新搜索“北京”关键词,如下图:

在这里插入图片描述

但是如果我现在搜索的词条是"北京昌平",因为我们的文档中没有address字段为"北京昌平"的分词,所以结果什么也查不到,如下图:

在这里插入图片描述

这就是term词条查询,它的搜索关键字会被当做一个整体,不会继续分词,然后拿这个整体去分词库中查询。但是下面的match全文查询不是这样的,它会先把搜索关键字分词,然后拿所有的分词结果去分词库中查询,最后再把查询结果拼接在一起。

match全文查询

在这里插入图片描述

上面是查询结果的并集,不是查询结果的交集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr-X~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值