您的位置:首页 > 教育 > 培训 > 东营市招标采购信息网_做一个网站的基本步骤_中国国家培训网正规吗_什么是seo如何进行seo

东营市招标采购信息网_做一个网站的基本步骤_中国国家培训网正规吗_什么是seo如何进行seo

2025/1/4 13:02:01 来源:https://blog.csdn.net/u013517797/article/details/144864948  浏览:    关键词:东营市招标采购信息网_做一个网站的基本步骤_中国国家培训网正规吗_什么是seo如何进行seo
东营市招标采购信息网_做一个网站的基本步骤_中国国家培训网正规吗_什么是seo如何进行seo

接上篇《4、Elasticsearch的安装》
上一篇我们进行了Elasticsearch以及Kibana的环境准备及软件安装,本篇我们安装最后一个支持软件IK分词器。

一、IK分词器概念

我们再来回顾一下上一张IK分词器的概念:
IK分词器(IK Analyzer)是一款开源的中文分词工具,支持智能分词、细粒度分词等多种分词模式。它基于词典的分词算法,结合了最大匹配法和逆向最大匹配法,能够在保证分词准确性的同时,保持较高的分词速度。IK分词器的主要作用是将中文文本切分为有意义的词项,为后续的文本分析、信息检索、机器学习等任务提供基础数据。其优势在于高效性、灵活性和多种分词模式,适用于不同的应用场景。

Elasticsearch、Kibana和IK分词器在数据处理和搜索分析领域各自扮演着重要的角色。Elasticsearch负责存储、搜索和分析数据;Kibana负责数据的可视化和管理;而IK分词器则专注于中文文本的分词处理,为Elasticsearch等搜索引擎提供准确的分词结果。

二、安装IK分词器插件

1、在线安装IK插件(较慢)

我们可以从github上安装开源的ik分词器插件,分为以下几步:

# 进入容器内部
docker exec -it elasticsearch /bin/bash# 在线下载并安装
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip#退出
exit
#重启容器
docker restart elasticsearch

但是这种受制于外网的网速原因,安装的时间比较长。我们推荐离线安装。

2、离线安装ik插件(推荐)

(1)查看数据卷目录

安装插件需要知道elasticsearch的plugins目录位置,而我们用了数据卷挂载,因此需要查看elasticsearch的数据卷目录,通过下面命令查看:

docker volume inspect es-plugins

显示结果:

说明plugins目录被挂载到了:/var/lib/docker/volumes/es-plugins/_data这个目录中。

(2)解压缩分词器安装包

下面我们需要把之前下载的安装包中的ik分词器解压缩(https://download.csdn.net/download/booguojieji/85329645),重命名为ik:

注:zip如果直接在linux中解压的话,需要提前安装unzip命令(sudo yum install unzip)。
解压完毕后,可以看到具体的IK分词器安装包中的内容:

(3)将ik文件夹上传到es容器的插件数据卷中

从解压后的ik文件夹所在的目录,复制该文件夹到/var/lib/docker/volumes/es-plugins/_data目录下,也就是刚刚查到es容器的plugins目录:

sudo cp -rp /home/ik /var/lib/docker/volumes/es-plugins/_data/


注:想要将/home/ik文件夹完整地复制到/var/lib/docker/volumes/es-plugins/_data目录下,需要使用cp命令结合-r(递归复制整个目录树)和-p(保留文件的属性,如时间戳、权限等)选项。

(4)重启容器

使用docker restart es重启es的容器,使其可以重新加载plugins目录,然后使用docker logs -f es查看启动日志:

# 4、重启容器
docker restart es
# 查看es日志
docker logs -f es

日志中我们如果看到“loaded plugin [analysis-ik]”字样,证明我们的ik分词器插件已经在es中安装成功:

(5)测试

IK分词器包含两种模式:

ik_smart:最少切分
ik_max_word:最细切分
GET /_analyze
{"analyzer": "ik_max_word","text": "星巴克的美式咖啡太好喝了"
}

这段语法是用于在Elasticsearch中使用IK分词器对文本进行分析的HTTP GET请求。下面是对各个部分的解释:
1)HTTP方法:GET
这里使用的是HTTP的GET方法,用于从服务器请求数据。在这个上下文中,它不是用来获取存储的数据,而是用来触发一个分析操作。
2)URL:/_analyze
URL指向Elasticsearch的_analyze端点。这个端点允许你对文本进行分析,查看它是如何被分词器分割成词条的。
3)请求体(Body):
请求体包含了要执行的分析操作的详细参数。
●"analyzer": "ik_max_word":
这里指定了要使用的分词器是ik_max_word。IK分词器是Elasticsearch的一个中文分词插件,提供了ik_smart和ik_max_word两种分词模式。ik_max_word会将文本做最细粒度的拆分,适合用于索引建立时做尽可能多的匹配。
●"text": "星巴克的美式咖啡太好喝了":
这里是要被分析的文本。在这个例子中,文本是中文和英文的混合,包含了“星巴克”、“美式”、“咖啡”和“太好喝了”这些词汇。

当这个请求被发送到Elasticsearch时,它会使用ik_max_word分词器对指定的文本进行分析,并返回分析的结果。结果通常包括分词后的词条列表,以及每个词条对应的起始和结束位置等信息(尽管这些信息可能不是所有情况下都会返回,具体取决于Elasticsearch的配置和请求的参数)。

我们打开Kibana,在右上角点击“Dev Tools”,进入开发工具的调试界面,输入上述指令,查看结果:

可以发现我们用最细切分将测试语句,拆分成了一个一个的词语。

三、扩展词词典

随着互联网的发展,“造词运动”也越发的频繁。出现了很多新的词语,在原有的词汇列表中并不存在。比如:“奥力给”,“葛优躺” 等。
所以我们的词汇也需要不断的更新,IK分词器提供了扩展词汇的功能。

1、打开IK分词器config目录

2、配置IKAnalyzer.cfg.xml文件

在IKAnalyzer.cfg.xml配置文件内容添加(vim IKAnalyzer.cfg.xml)


主要是在<entry key="ext_dict">ext.dic</entry>中添加一个“ext.dic”。
然后新建一个 ext.dic,可以参考config目录下复制一个配置文件进行修改:

3、重启elasticsearch

docker restart es
# 查看 日志
docker logs -f es

看到下面的语句,证明我们已经成功加载ext.dic配置文件:

4、测试效果

四、停用词词典

在互联网项目中,在网络间传输的速度很快,所以很多语言是不允许在网络上传递的,如:关于宗教、政治等敏感词语,那么我们在搜索时也应该忽略当前词汇。
IK分词器也提供了强大的停用词功能,让我们在索引时就直接忽略当前的停用词汇表中的内容。

1、配置IKAnalyzer.cfg.xml文件

IKAnalyzer.cfg.xml配置文件内容添加扩展停止词字典:

主要是在<entry key="ext_stopwords">stopword.dic</entry>中添加一个“stopword.dic”。
然后新建一个stopword.dic,在stopword.dic添加停用词:

2、重启elasticsearch

# 重启服务
docker restart es
docker restart kibana
# 查看 日志
docker logs -f es

日志中已经成功加载stopword.dic配置文件:

3、测试效果

至此,关于IK分词器的安装就讲解完毕了。下一篇我们来学习索引库的操作。

参考:《黑马Elasticsearch全套教程》
转载请注明出处:https://guangzai.blog.csdn.net/article/details/144864948

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com