elaseticsearch 配置ik分词器的热更新_ElasticSearch中的中文分词器以及索引基本操作详解

发布时间:2021-11-30 01:03:40

本文是松哥所录视频教程的一个笔记,笔记简明扼要,完整内容小伙伴们可以参考视频,视频下载链接:https://pan.baidu.com/s/1NHoe0_52ut9fDUh0A6UQLA 提取码: kzv7





1.ElasticSearch 分词器介绍
1.1 内置分词器

ElasticSearch 核心功能就是数据检索,首先通过索引将文档写入 es。查询分析则主要分为两个步骤:


    词条化:分词器将输入的文本转为一个一个的词条流。过滤:比如停用词过滤器会从词条中去除不相干的词条(的,嗯,啊,呢);另外还有同义词过滤器、小写过滤器等。

ElasticSearch 中内置了多种分词器可以供使用。


内置分词器:


分词器 作用 Standard Analyzer 标准分词器,适用于英语等。 Simple Analyzer 简单分词器,基于非字母字符进行分词,单词会被转为小写字母。 Whitespace Analyzer 空格分词器。按照空格进行切分。 Stop Analyzer 类似于简单分词器,但是增加了停用词的功能。 Keyword Analyzer 关键词分词器,输入文本等于输出文本。 Pattern Analyzer 利用正则表达式对文本进行切分,支持停用词。 Language Analyzer 针对特定语言的分词器。 Fingerprint Analyzer 指纹分析仪分词器,通过创建标记进行重复检测。


1.2 中文分词器

在 Es 中,使用较多的中文分词器是 elasticsearch-analysis-ik,这个是 es 的一个第三方插件,代码托管在 GitHub 上:


https://github.com/medcl/elasticsearch-analysis-ik
1.2.1 安装

两种使用方式:


第一种:


    首先打开分词器官网:https://github.com/medcl/elasticsearch-analysis-ik。在 https://github.com/medcl/elasticsearch-analysis-ik/releases 页面找到最新的正式版,下载下来。我们这里的下载链接是 https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.3/elasticsearch-analysis-ik-7.9.3.zip。将下载文件解压。在 es/plugins 目录下,新建 ik 目录,并将解压后的所有文件拷贝到 ik 目录下。* es 服务。

第二种:


./bin/elasticsearch-plugin?install?https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.3/elasticsearch-analysis-ik-7.9.3.zip
1.2.2 测试

es *舫晒螅紫却唇ㄒ桓雒 test 的索引:





接下来,在该索引中进行分词测试:





1.2.3 自定义扩展词库
1.2.3.1 本地自定义

在 es/plugins/ik/config 目录下,新建 ext.dic 文件(文件名任意),在该文件中可以配置自定义的词库。





如果有多个词,换行写入新词即可。


然后在 es/plugins/ik/config/IKAnalyzer.cfg.xml 中配置扩展词典的位置:





1.2.3.2 远程词库

也可以配置远程词库,远程词库支持热更新(不用* es 就可以生效)。


热更新只需要提供一个接口,接口返回扩展词即可。


具体使用方式如下,新建一个 Spring Boot 项目,引入 Web 依赖即可。然后在 resources/stastic 目录下新建 ext.dic 文件,写入扩展词:





接下来,在 es/plugins/ik/config/IKAnalyzer.cfg.xml 文件中配置远程扩展词接口:





配置完成后,* es ,即可生效。


热更新,主要是响应头的 Last-Modified 或者 ETag 字段发生变化,ik 就会自动重新加载远程扩展辞典。


视频笔记,在公众号江南一点雨后台回复 elasticsearch04 获取下载链接。


2. ElasticSearch 索引管理

微信公众号江南一点雨后台回复 elasticsearch05 下载本笔记。


启动一个 master 节点和两个 slave 节点进行测试(参考第二集的视频搭建)。


2.1 新建索引
2.1.1 通过 head 插件新建索引

在 head 插件中,选择 索引选项卡,然后点击新建索引。新建索引时,需要填入索引名称、分片数以及副本数。





索引创建成功后,如下图:





0、1、2、3、4 分别表示索引的分片,粗框表示主分片,细框表示副本(点一下框,通过 primary 属性可以查看是主分片还是副本)。.kibana 索引只有一个分片和一个副本,所以只有 0。


2.1.2 通过请求创建

可以通过 postman 发送请求,也可以通过 kibana 发送请求,由于 kibana 有提示,所以这里采用 kibana。


创建索引请求:


PUT?book

创建成功后,可以查看索引信息:





需要注意两点:


索引名称不能有大写字母



索引名是唯一的,不能重复,重复创建会出错



2.2 更新索引

索引创建好之后,可以修改其属性。


例如修改索引的副本数:


PUT?book/_settings{??"number_of_replicas":?2}

修改成功后,如下:





更新分片数也是一样。


2.3 修改索引的读写权限

索引创建成功后,可以向索引中写入文档:


PUT?book/_doc/1{??"title":"三国演义"}

写入成功后,可以在 head 插件中查看:





默认情况下,索引是具备读写权限的,当然这个读写权限可以关闭。


例如,关闭索引的写权限:


PUT?book/_settings{??"blocks.write":?true}

关闭之后,就无法添加文档了。关闭了写权限之后,如果想要再次打开,方式如下:


PUT?book/_settings{??"blocks.write":?false}

其他类似的权限有:


blocks.writeblocks.readblocks.read_only
2.4 查看索引

head 插件查看方式如下:





请求查看方式如下:


GET?book/_settings

也可以同时查看多个索引信息:


GET?book,test/_settings

也可以查看所有索引信息:


GET?_all/_settings
2.5 删除索引

head 插件可以删除索引:





请求删除如下:


DELETE?test

删除一个不存在的索引会报错。


5.6 索引打开/关闭

关闭索引:


POST?book/_close

打开索引:


POST?book/_open

当然,可以同时关闭/打开多个索引,多个索引用 , 隔开,或者直接使用 _all 代表所有索引。


2.7 复制索引

索引复制,只会复制数据,不会复制索引配置。


POST?_reindex{??"source":?{"index":"book"},??"dest":?{"index":"book_new"}}

复制的时候,可以添加查询条件。


2.8 索引别名

可以为索引创建别名,如果这个别名是唯一的,该别名可以代替索引名称。


POST?/_aliases{??"actions":?[????{??????"add":?{????????"index":?"book",????????"alias":?"book_alias"??????}????}??]}

添加结果如下:





将 add 改为 remove 就表示移除别名:


POST?/_aliases{??"actions":?[????{??????"remove":?{????????"index":?"book",????????"alias":?"book_alias"??????}????}??]}

查看某一个索引的别名:


GET?/book/_alias

查看某一个别名对应的索引(book_alias 表示一个别名):


GET?/book_alias/_alias

可以查看集群上所有可用别名:


GET?/_alias

最后,松哥还搜集了 50+ 个项目需求文档,想做个项目练练手的小伙伴不妨看看哦~











需求文档地址:https://github.com/lenve/javadoc

相关文档

  • AcWing 1341. 十三号星期五(暴力+枚举)
  • 国际英语新闻:Obama Defends Energy Policy
  • kate口红什么颜色好看秋冬黄皮色号推荐
  • 关于法制教育主题的黑板报图片素材
  • 冬季美容小知识
  • 深入理解JVM虚拟机3:垃圾回收器详解
  • ipadpro照片误删了
  • 橘皮水适合浇什么花
  • 品味冬季阅读答案
  • Synchronized原理图
  • 第100篇:ACM感想
  • 泥泞中要把母亲的头巾举起记叙文阅读原文和答案
  • 学校青年志愿者工作总结
  • Javassist实现动态代理
  • 以太坊-搭建远程bootnode节点
  • Java引用类型
  • 剧本杀能随便拜堂吗 剧本杀拜堂建议玩吗
  • 天山传
  • 常见的网络故障类型及诊断分析
  • 爸爸属鼠和孩子鼠马好不好
  • s城
  • 留学挂科怎么办
  • 肚皮舞小知识
  • 踏上新的旅程
  • 云阳馆与韩绅宿别阅读答案
  • VirtualBox centos 7 安装hadoop
  • 高二理科生的学习方法有哪些
  • Hystrix使用笔记
  • alibaba easyexcel读取表格的时候只读取到部分数据 并且报错com.alibaba.excel.exception.ExcelAnalysisException
  • 描写疫情期间感受的作文600字
  • 猜你喜欢

  • 新祥旭考研辅导-2015北京城市学院社会工作硕士拟录取名单
  • 2018年6月银行辞职报告怎么写
  • 最新高中历史必修一时间表名师精心制作教学资料
  • 高中地理-高一地理经济发达地区的可持续发展 最新
  • 钳形电流表的功能和作用
  • 餐饮菜品价格如何制定
  • 南通市危险化学品建设项目安全设施设计审查专家组意见.doc
  • 站长,请换一个眼光看百度
  • 人教部编版二年级上册语文《语文园地二》教案
  • Pycharm背景颜色,波浪线更改
  • 2020版高考地理总复*第八章农业地域的形成与发展8.2农业地域类型配餐作业(含解析)新人教版
  • 特别的父亲节礼物_父亲节作文400字
  • 【精编】2019年应聘求职信模板20信息工程.doc
  • 江苏大学2018年《822信息化教育概论》考研专业课真题试卷
  • 作文:当老师不在的时候 450字
  • 【新版】金融技术风险管理
  • 高二读后感作文:*凡的世界读后感.docx
  • 英雄联盟怎样查看召唤师资料
  • 初二作文日记《我不想长大》700字(总10页PPT)
  • 重庆市重庆一中高三理综(化学部分)上学期第一次月考试题
  • Fe3O4纳米晶的粒径控制合成、表征及其吸波性能
  • 地下连续墙施工中常见问题的分析和处理
  • 摩羯座萌萌哒的高清图片
  • 2015净水器选购指南,最新净水器选购方法指南
  • 五年级语文阅读答题技巧及练*二
  • 对比同期和分期全膝关节置换术对双膝关节骨关节炎的临床疗效与安全性分析
  • 几米漫画经典个性唯美的语录
  • 胆石症病人的护理及健康教育
  • 在eclipse中运行web项目提示端口被占用
  • 精选跟单员年终个人工作总结2015
  • 2018-2024年中国台式PC产品市场深度研究与发展趋势研究报告(目录)
  • 高速铁道技术专业人才培养方案(哈尔滨铁道职业技术学院).
  • 分子流行病学与人类基因组计划(1)
  • 徐州市2016-2017学年度第二学期七年级地理期中试卷(有答案
  • 广西藤县东荣镇荣江学校八年级数学上册 14.1.3 函数图像(一)导学案(无答案) 新人教版
  • 电脑输错密码被锁了怎么办
  • android自定义进度条样式,Android 自定义进度条
  • 精彩的我随笔
  • 我的幻想城作文_初二作文
  • 【优质】最新人教小学数学一年级下册《第4课时练*课》教学课件ppt
  • 计算机电子信息工程技术的应用和安全研究
  • 浅析非物质文化遗产纪录片对外的传播价值
  • 电脑版