4 IK分词器

news/2024/11/26 9:26:18/

4 IK分词器

4.1测试分词器

在添加文档时会进行分词,索引中存放的就是一个一个的词(term),当你去搜索时就是拿关键字去匹配词,最终 找到词关联的文档。

测试当前索引库使用的分词器:

post 发送:localhost:9200/_analyze

{“text”:“测试分词器,后边是测试内容:spring cloud实战”}

结果如下:

image-20200130173529745

会发现分词的效果将 “测试” 这个词拆分成两个单字“测”和“试”,这是因为当前索引库使用的分词器对中文就是单字

分词。 所以搜索测试两字是搜不到的

4.2 安装IK分词器

使用IK分词器可以实现对中文分词的效果。

下载IK分词器:(Github地址:https://github.com/medcl/elasticsearch-analysis-ik)

下载zip:

image-20200130173616528

解压,并将解压的文件拷贝到ES安装目录的plugins下的ik目录下

image-20200130173643443

测试分词效果:

发送:post localhost:9200/_analyze

{“text”:“测试分词器,后边是测试内容:spring cloud实战”,“analyzer”:“ik_max_word” }

image-20200130173708667

4.3 两种分词模式

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

1、细颗粒分词器:ik_max_word

会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、

华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。

2、粗颗粒分词器:ik_smart

会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。

测试两种分词模式:

发送:post localhost:9200/_analyze

{“text”:“中华人民共和国人民大会堂”,“analyzer”:“ik_smart” }

4.4 自定义词库

如果要让分词器支持一些专有词语(比如:测试分词器),可以自定义词库。

没有自定义词汇前搜索在词汇表中没有的专有词语(如 测试分词器),会搜索不到:搜索结果:

image-20200130173708667

iK分词器自带一个main.dic的文件,此文件为词库文件。

image-20200130173758644

自定义词库步骤:

1、在上边的目录中新建一个my.dic文件(注意文件格式为utf-8(不要选择utf-8 BOM)),可以在其中自定义词汇:如 测试分词器

在IKAnalyzer.cfg.xml配置文件中配置my.dic,

image-20200130173823846

重启ES,测试分词效果:

发送:post localhost:9200/_analyze

{“text”:“测试分词器,后边是测试内容:spring cloud实战”,“analyzer”:“ik_max_word” }

image-20200130173851109


http://www.ppmy.cn/news/66525.html

相关文章

【2023华为OD笔试必会20题--C语言版】《17 猜字谜》——字符串

本专栏收录了华为OD 2022 Q4和2023Q1笔试题目,100分类别中的出现频率最高(至少出现100次)的20道,每篇文章包括原始题目 和 我亲自编写并在Visual Studio中运行成功的C语言代码。 仅供参考、启发使用,切不可照搬、照抄,查重倒是可以过,但后面的技术面试还是会暴露的。✨✨…

数据结构-查找-线性结构(顺序、折半、分块)查找

目录 一、顺序查找 *查找效率分析 二、折半查找 *查找效率分析 三、分块查找 *查找效率分析 一、顺序查找 有称线性查找, 算法思想:从头到尾挨个查找(反过来也行) typedef struct{int *elem; //数据int TableLen; …

Git 常用命令(优化版本)

Git常用命令 仓库 初始化一个Git代码库:git init克隆一个项目和它的整个代码历史:git clone [url]配置 显示当前的Git配置:git config --list编辑Git配置文件:git config -e [--global]设置提交代码时的用户信息:gi…

java基础知识梳理

虽然已经在实际工作中与java打交道5年之多,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便…

浅谈 如何挂载和卸载文件系统,包括使用 mount 和 umount 命令、/etc/fstab 文件等

在Linux系统中,可以使用mount和umount命令来挂载和卸载文件系统。mount命令用于将文件系统挂载到指定的挂载点,umount命令用于卸载已经挂载的文件系统。同时,还可以通过编辑/etc/fstab文件来实现自动挂载文件系统。 使用mount和umount命令 …

SQL 常用函数总结(一)

聚合函数 1. COUNT() COUNT() 函数用于计算一个表格或查询结果集合中的行数。 语法:COUNT(column_name) 或 COUNT(*) column_name 是可选的,表示计算某一列的非空值数量。* 表示计算所有行的数量。 示例1:计算 users 表格中所有记录的数…

【大数据】通过 docker-compose 快速部署 Presto(Trino)保姆级教程

文章目录 一、概述二、前期准备1)部署 docker2)部署 docker-compose 三、创建网络四、Trino 编排部署1)下载 trino2)配置1、coordinator 配置2、worker 配置 3)启动脚本 bootstrap.sh4)构建镜像 Dockerfile…

【Linux】Linux安装tomcat(图文解说详细版)

文章目录 1、安装前置条件2、下载所需压缩包,上传到服务器3、对资源进行解压4、给防火墙添加访问端口(默认8080,在它的/conf/server.xml文件里面查看)5、然后切换到bin目录下,启动(成功效果如图&#xff09…