聊聊 elasticsearch 之分词器配置 (IK+pinyin)
系统:windows 10
elasticsearch版本:5.6.9
es分词的选择
- 使用es是考虑服务的性能调优,通过读写分离的方式降低频繁访问数据库的压力,至于分词的选择考虑主要是根据目前比较流行的分词模式,根据参考文档自己搭建测试。
es配置目录结构
- 在此先贴出es下plugins的目录结构,避免安装时一脸茫然(出自本人配置目录,可根据自身需要进行调整):
- es插件目录结构:

- ik压缩包内文件列表:

- pinyin压缩包内文件目录:

IK 分词器
- IK分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v5.6.11
- 进入链接,选择对应版本编译好的压缩包,点击即可下载。如下图:
、 - 上述步骤下载后,解压文件到至\elasticsearch5.6.9\plugins\ik目录下(如无ik目录,手动创建即可),重新启动es服务,即可看到控制台输出的插件信息,表示配置成功。如下图:

pinyin分词器
- 拼音分词器下载地址:https://github.com/medcl/elasticsearch-analysis-pinyin/releases?after=v5.6.11
- 拼音分词的配置类似于ik分词,进入链接,选择对应版本编译好的压缩包,点击即可下载。如下图:

- 上述步骤下载后,解压文件到至\elasticsearch5.6.9\plugins\pinyin目录下(如无pinyin目录,手动创建即可),重新启动es服务,即可看到控制台输出的插件信息,表示配置成功。如下图:

分词器的测试案例
- IK分词,主要强调两种分词模式:ik_smart和ik_max_word
- ik_smart是将文本做了正确的拆分,如下图:

- 看到结果发现ik_smart分词模式拆分的不够细,“阳光明媚”并没有拆分开,所以接下来就该另一种分词出场了 ---- ik_max_word,直接上结果,如下图:

- 这种更加详细的拆分才是我想要的,这回不用担心高级搜索了····
- ik_smart是将文本做了正确的拆分,如下图:
- 拼音分词,简言之就是将文本拆分成更加详细拼音,图解如下:

- ik与pinyin的结合使用(注:当使用分词搜索数据的时候,必须是通过分词器分析的数据才能搜索出来,否则无法搜索出数据)
- 创建索引时可以自定义分词器配置,通过映射可以指定自定义的分词器,配置如下图:

- 创建名称为“greatom”的索引,自定义“ik_smart_pinyin”和“ik_max_word_pinyin”的分词器,过滤设置为“g_pinyin”,如上图右侧提示则表示设置成功,可以通过“GET greatom/settings”查询配置信息。
- 创建type时,需要在字段的解析属性(analyzer)中设置自定义名称的映射,如下图:

- 如上图右侧提示则表示创建成功,接下来增加点数据,以便后续测试。

- 测试数据按照上图方式即可进行批量新增,也可对索引数据进行查询。接下来就开始正式的分词查询。

- 上图表示两种分词的查询格式,可以联想搜索出相关的所有数据,感觉比较智能了。
- 创建索引时可以自定义分词器配置,通过映射可以指定自定义的分词器,配置如下图:
结尾
- 通过对es分词的了解和使用,发现选择的两种分词模式已经满足自己项目的使用,还未进行更深入的了解,后续会继续了解底层及分词原理,如有瑕疵或更好的见解,希望可以交流学习。
聊聊 elasticsearch 之分词器配置 (IK+pinyin)的更多相关文章
- elasticsearch中文分词器(ik)配置
elasticsearch默认的分词:http://localhost:9200/userinfo/_analyze?analyzer=standard&pretty=true&tex ...
- Solr多核心及分词器(IK)配置
Solr多核心及分词器(IK)配置 多核心的概念 多核心说白了就是多索引库.也可以理解为多个"数据库表" 说一下使用multicore的真实场景,比若说,产品搜索和会员信息搜索 ...
- 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)
版权声明:本文为博主原创文章,转载请注明本文地址.http://www.cnblogs.com/o0Iris0o/p/5813856.html 内容介绍: 真分布式SolrCloud+Zookeepe ...
- ElasticSearch中分词器组件配置详解
首先要明确一点,ElasticSearch是基于Lucene的,它的很多基础性组件,都是由Apache Lucene提供的,而es则提供了更高层次的封装以及分布式方面的增强与扩展. 所以要想熟练的掌握 ...
- Solr IK分词器配置
下载地址:https://search.maven.org/search?q=com.github.magese 分词器配置: 参考:https://www.cnblogs.com/mengjinlu ...
- elasticsearch kibana + 分词器安装详细步骤
elasticsearch kibana + 分词器安装详细步骤 一.准备环境 系统:Centos7 JDK安装包:jdk-8u191-linux-x64.tar.gz ES安装包:elasticse ...
- Solr入门之(8)中文分词器配置
Solr中虽然提供了一个中文分词器,但是效果很差,可以使用IKAnalyzer或Mmseg4j 或其他中文分词器. 一.IKAnalyzer分词器配置: 1.下载IKAnalyzer(IKAnalyz ...
- 2.IKAnalyzer 中文分词器配置和使用
一.配置 IKAnalyzer 中文分词器配置,简单,超简单. IKAnalyzer 中文分词器下载,注意版本问题,貌似出现向下不兼容的问题,solr的客户端界面Logging会提示错误. 给出我配置 ...
- Solr6.5.0配置中文分词器配置
准备工作: solr6.5.0安装成功 1.去官网https://github.com/wks/ik-analyzer下载IK分词器 2.Solr集成IK a)将ik-analyzer-solr6.x ...
随机推荐
- 给大家分享一下java数据库操作步骤
获取驱动程序Jar文件,并放置到项目的类路径中: 注册驱动器类: 获取数据库连接: 获取Statement对象来执行相关SQL操作: 关闭各种资源;
- 4G工业路由器的传输功率是越高越好吗?
现在人们越来越多的利用运营商网络进行家庭的Wi-Fi上网,早已是非常普遍的事情了.而无线路由器作为设备组网的重要组成部分,与路由器相关的话题.知识总会能够引发大家的热议.这里,以众山物联网研发.生产的 ...
- Java Web中解决乱码的方式
Java Web中解决乱码的方式 方式一:添加编码过滤器 package com.itmacy.dev.filter; import javax.servlet.*; import javax.ser ...
- [Luogu P4215] 踩气球 (线段树)
题面 传送门:https://www.luogu.org/problemnew/show/P4215 Solution 这题十分有意思. 首先,我们可以先想想离线做法,因为在线做法可以从离线做法推出. ...
- 分享JDK解压版(ZIP)
目录 由于安装版本的jdk不太方便,所以我分享一下如何去获取解压版的jdk,jdk配置的话看这个文章 一.先下载exe版本的jdk安装程序: 二.使用7-ZIP解压工具 2.1 JDK8的解压目录 2 ...
- 【Kata Daily 191012】Find numbers which are divisible by given number
题目: Complete the function which takes two arguments and returns all numbers which are divisible by t ...
- 易于理解的 python 深度学习摘要算法教程
序 "我不想要一份完整的报告,只要给我一份结果摘要就好".我经常发现自己处于这种状况 -- 无论是在大学里还是在我的职业生涯中.我们准备一份全面的报告,但老师/主管却只有时间阅读摘 ...
- Git Push大文件报错后如何撤回
昨晚在提交一个项目代码时,不小心把数据库备份文件也一起Commit了:到最后Push的时候报错了.最后弄了半天解决了,在此记录下. 如下图,文件有108M. 项目放在第三方托管平台上,根据提示查看了原 ...
- C++ 数据结构 2:栈和队列
1 栈 1.1 栈的基本概念 栈(stack)又名堆栈,它是一种 运算受限的线性表.限定 仅在表尾进行插入和删除操作 的线性表.表尾被称为栈顶,相对地,把另一端称为栈底. 1.1.1 特点 它的特殊之 ...
- 为什么使用MongoDB
MongoDB vs MySQL Nosql vs RDBMS(关系型数据库) MongoDB采用类似Json的形式存储数据而不是结构性的表 MongoDB的分片机制支持海量数据的存储和扩展,并有完整 ...