ElasticSearch中的中文分词器以及索引基本操作详解

ElasticSearch中的中文分词器以及索引基本操作详解

1.ElasticSearch 分词器介绍

1.1 内置分词器

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

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

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 安装

两种使用方式:

第一种:

  1. 首先打开分词器官网:https://github.com/medcl/elasticsearch-analysis-ik。
  2. 在 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。
  3. 将下载文件解压。
  4. 在 es/plugins 目录下,新建 ik 目录,并将解压后的所有文件拷贝到 ik 目录下。
  5. 重启 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 的索引:

ElasticSearch中的中文分词器以及索引基本操作详解

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

ElasticSearch中的中文分词器以及索引基本操作详解

1.2.3 自定义扩展词库

1.2.3.1 本地自定义

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

ElasticSearch中的中文分词器以及索引基本操作详解

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

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

ElasticSearch中的中文分词器以及索引基本操作详解

1.2.3.2 远程词库

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

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

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

ElasticSearch中的中文分词器以及索引基本操作详解

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

ElasticSearch中的中文分词器以及索引基本操作详解

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

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

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

2. ElasticSearch 索引管理

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

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

2.1 新建索引

2.1.1 通过 head 插件新建索引

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

ElasticSearch中的中文分词器以及索引基本操作详解

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

ElasticSearch中的中文分词器以及索引基本操作详解

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

2.1.2 通过请求创建

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

创建索引请求:

PUT book

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

ElasticSearch中的中文分词器以及索引基本操作详解

需要注意两点:

  • 索引名称不能有大写字母
ElasticSearch中的中文分词器以及索引基本操作详解
  • 索引名是唯一的,不能重复,重复创建会出错
ElasticSearch中的中文分词器以及索引基本操作详解

2.2 更新索引

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

例如修改索引的副本数:

PUT book/_settings
{
  "number_of_replicas": 2
}

修改成功后,如下:

ElasticSearch中的中文分词器以及索引基本操作详解

更新分片数也是一样。

2.3 修改索引的读写权限

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

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

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

ElasticSearch中的中文分词器以及索引基本操作详解

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

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

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

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

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

其他类似的权限有:

  • blocks.write
  • blocks.read
  • blocks.read_only

2.4 查看索引

head 插件查看方式如下:

ElasticSearch中的中文分词器以及索引基本操作详解

请求查看方式如下:

GET book/_settings

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

GET book,test/_settings

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

GET _all/_settings

2.5 删除索引

head 插件可以删除索引:

ElasticSearch中的中文分词器以及索引基本操作详解

请求删除如下:

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"
      }
    }
  ]
}

添加结果如下:

ElasticSearch中的中文分词器以及索引基本操作详解

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

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

查看某一个索引的别名:

GET /book/_alias

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

GET /book_alias/_alias

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

GET /_alias

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

ElasticSearch中的中文分词器以及索引基本操作详解
ElasticSearch中的中文分词器以及索引基本操作详解
ElasticSearch中的中文分词器以及索引基本操作详解

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

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

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/share/15829.html

发表评论

登录后才能评论

代做工资流水公司南宁企业流水打印打印福州查房贷收入证明铜陵流水报价湖州薪资银行流水制作包头代开贷款银行流水三亚收入证明代开泉州代做银行流水单苏州企业流水打印制作保定对公账户流水代办惠州背调工资流水办理绍兴开企业对公流水淮安打流水账单黄冈工资流水单代做三亚银行流水修改图片苏州办个人银行流水哈尔滨制作签证流水吉林企业对公流水代办阜阳个人工资流水 模板兰州签证工资流水开具宜昌薪资银行流水图片常德银行对公流水费用株洲代办贷款银行流水昆明办理流水商丘查询企业流水打印郑州个人工资流水 开具太原做入职流水郑州办理日常消费流水孝感企业银行流水价格邢台打银行流水修改潍坊购房银行流水查询香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化