文章目录

  • 1.为什么要自定义扩展ES词库呢?
  • 2.如何自定义扩展词库呢?
  • 3.Docker安装Nginx
  • 4.在nginx中保存一个简易词库
  • 5.修改IK分词器的配置文件,让其指向nginx保存的词库
  • 6.测试分词效果

1.为什么要自定义扩展ES词库呢?

虽然IK-中文分词器已经很强悍了,能够识别大多数的词汇,但是对于网络中新兴的网络词汇是无法识别的(比如“爷青回” “打工人”)

下图是我在Kibana对“爷青回”的分词情况

分词结果如下:

本身我们想让“爷青回”作为一个词,由于是网络词汇,IK-分词器是无法识别出的,所以需要我们自定义扩展词库

2.如何自定义扩展词库呢?

有两种思路,如下所示:

  • Ⅰ.我们构建一个词库服务器,让IK分词器给我们的词库服务器发送请求即可
  • Ⅱ.使用web服务器保存我们的词库;例如nginx服务器,只需要将我们的词汇保存到nginx,然后让IK分词器向nginx发送请求即可。

3.Docker安装Nginx

(1)新建文件夹方便一会挂载

mkdir -p /mydata/nginx/html
mkdir -p /mydata/nginx/logs
mkdir -p /mydata/nginx/conf

(2)给予这些文件可读可写可执行的权限

cd /mydata/
chmod -R 777 mydata/
-R表示递归mydata下的所有文件给予RWX权限

(3)拉取nginx镜像并运行

docker pull nginx:1.14.2

docker run --name nginx -p 80:80 -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d -v /mydata/nginx/logs:/var/log/nginx -v /mydata/nginx/html:/usr/share/nginx/html -d nginx

–name :表示为该容器起的名字
-p:表示指定端口
-v:表示挂载文件
可以看出我对nginx.conf、conf.d、logs、html进行了文件挂载,方便以后操作

docker ps查看结果

在html文件夹下,新建一个a.html文件,向文件里面追加echo “< a> HELLO </ a>”

浏览器访问http://ip:80/a.html(注意如果是云服务器记得将80端口对外开放


nginx安装成功!

4.在nginx中保存一个简易词库

后期可以自行扩展,编写一个脚本程序,定时爬取各大网站的热点网络词汇,然后更新到该词库即可。

在html目录下,新建一个word-house文件夹

cd到word-house目录下,新建一个split-word.txt文件,向里面加入如下内容

5.修改IK分词器的配置文件,让其指向nginx保存的词库

进入es容器内部:docker exec -it elasticsearch /bin/bash
cd到指定目录下:cd /usr/share/elasticsearch/plugins/ik/config

编辑IKAnalyzer.cfg.xml:vi 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"></entry><!--用户可以在这里配置自己的扩展停止词字典--><entry key="ext_stopwords"></entry><!--用户可以在这里配置远程扩展字典 --><entry key="remote_ext_dict">http://292.168.56.10/word-house/split-word.txt</entry><!--用户可以在这里配置远程扩展停止词字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

重启ElasticSerach容器:docker restart elasticsearch

6.测试分词效果

重启之后,稍等片刻,访问Kibana


查看分词结果

成功!

2022还在使用Mysql进行数据检索?ElasticSearch自定义扩展词库完成检索相关推荐

  1. Elasticsearch--分词-自定义扩展词库---全文检索引擎ElasticSearch工作笔记022

    然后我们再看,之前我们给"尚硅谷电商项目" 进行分词的时候 可以看到,我们知道尚硅谷是一个词,但是他没有给我们识别出来,而是,把尚分离了出来. 那怎么让他按照我们想的进行分词呢?, ...

  2. elasticsearch分词器词库热更新三种方案

    文章目录 一.本地文件读取方式 二.远程扩展热更新 IK 分词 三.重写ik源码连接mysql 一.本地文件读取方式 首先进入elasticsearch目录的plugins目录下,查看目录结构 2.进 ...

  3. ElasticSearch自定义词库

    由于网络词语层出不穷,ik分词器有时并不能完全识别网络词汇,如下: 按照网络词语,王者荣耀应该被识别为一个词语,而不是被拆分成2个. 所以这时需要自定义词库来解决以上问题. 自定义词库 自定义扩展词库 ...

  4. Azure Database for Mysql 还原操作,还原表,还原库,还原一切

    Azure Database for Mysql还原操作 文章目录 Azure Database for Mysql还原操作 操作流程 还原 配置还原后产生的新Mysql服务器的名字 还原的原理 结论 ...

  5. Elasticsearch 7.X Ik源码解读,及自定义远程动态词库

    一.ik 远程词库 上篇文章对ik进行了整体的讲解,包括远程动态词库的讲解,但是上篇文章中是基于nginx+静态txt文件实现的,利用nginx 对文件修改后自动添加Last-Modified 的属性 ...

  6. 使用canal同步MySQL数据到Elasticsearch(ES)

    目录 1.功能及使用场景 1.1.功能介绍 1.2.使用场景 2.需求引入 3.canal文件下载及准备 3.1 下载文件 3.2 准备文件 4.deployer安装及效果测试 4.1.deploye ...

  7. 还不了解MySQL的指令?有它就够了!

    阅读提示 本文将详细的总结学习MySQL时所遇到的各类指令. 目录 阅读提示 一.进入MySQL数据库 对于库和表的常用语句 二.MySQL表的创建 字段类型 (1) 数值类型 (2) 时间类型 (3 ...

  8. 2022还不知道登陆邮箱账号怎么填写?个人邮箱登录注册流程看详解

    今年入冬以来,我国多地散发新冠肺炎疫情.浙江三地同日报告新增.满洲里大规模核酸共检出阳性431例.上海新增本土1例."奥密克戎"以惊人的速度传播,目前已至少在38个国家和地区出现. ...

  9. MySQL数据同步到ES集群(MySQL数据库与ElasticSearch全文检索的同步)

    简介:MySQL数据库与ElasticSearch全文检索的同步,通过binlog的设置对MySQL数据库操作的日志进行记录,利用Python模块对日志进行操作,再利用kafka的生产者消费者模式进行 ...

最新文章

  1. Swift - 添加纯净的Alamofire
  2. 【Python】logging内置模块基本使用
  3. java pdf水印排布问题_java 实现 PDF 加水印功能
  4. mysql数据库访问组件_mysql数据库访问组件
  5. 【UVA1592】Database (字符串读入技巧和map的使用)
  6. 手机QQ空间装逼代码收集
  7. C# 简单的ZEBRA标签打印程序
  8. 计算机编程自学怎么样?
  9. 虚拟 IO 服务器(VIOS)和 IBM i
  10. 使用jwt方式的接口访问
  11. 自定义CKeditor上传图片按钮
  12. 关于线程池中Worker对象的理解
  13. 画论21 刘道醇《五代名画补遗》
  14. strcmp和==比较
  15. Linux内核设计与实现(1)第一章:Linux内核简介
  16. php面试时的自我称呼,求职者不知道在面试时该如何称呼hr?
  17. 连接校园网的路由器为啥老是服务器没响应,校园网路由器不能使用怎么办?
  18. 夏洛克和他的女朋友(AcWing 1293)
  19. 数字图像处理与应用——半色调技术
  20. 湖南科技大学计算机学院刘红杨,湖南科技大学计算机科学与工程学院王晓亮教授指导本科生团队在机器翻译算法的准确性上取得新进展...

热门文章

  1. 轻轻松松为你的手机截图
  2. Linux实验报告常用工具开发,Linux基础入门第六节实验报告
  3. python画网络关系 节点和边存在文件里_python复杂网络分析库NetworkX
  4. 过河问题matlab建模,matlab三对夫妻过河问题
  5. 矩阵为奇异工作精度_外积与复合矩阵,特征值/奇异值的乘积型受控,Hodge对偶与伴随矩阵...
  6. 贵州大学开题报告计算机,贵州大学毕业论文开题报告.docx
  7. php+中午截取,PHP_php字符串截取中文截取2,单字节截取模式,//中文截取2,单字节截取模式 - phpStudy...
  8. java 获取上下文_如何获得spring上下文的方法总结
  9. Android自定义动态壁纸,Android自定义动态壁纸开发详解
  10. mac homebrew装mysql_mac系统homebrew安装mysql