分词器以及ik中文分词器
文章目录
- 分词器以及ik中文分词器
- 概念
- ik分词器的安装
- 环境准备
- 设置jdk环境变量
- 下载maven安装包并解压
- 设置path
- 验证maven是否安装成功
- 下载IK分词器并安装
- 使用IK分词器
- 查询文档
- term词条查询
- match全文查询
分词器以及ik中文分词器
概念
ik分词器的安装
因为es自带的分词器对英文非常友好,但是对中文很不友好,所以我们需要安装一个ik分词器。
特点
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包;
是一个基于Maven构建的项目;
具有60万字/秒的告诉处理能力;
支持用户词典扩展定义;
环境准备
Elasticsearch需要使用ik,就要先构建ik的jar包,这里要用到maven包管理工具,而maven需要java环境,而Elasticsearch内置了jdk,所以可以将JAVA_HOME设置为Elasticsearch内置的jdk。
设置jdk环境变量
vim /etc/profile
#在文件末尾添加jdk的环境变量
export JAVA_HOME=/opt/elasticsearch-7.16.2/jdk
export PATH=$PATH:${JAVA_HOME}/bin#保存退出后,重新加载profile
source /etc/profile
下载maven安装包并解压
设置path
打开文件
vim /etc/profile.d/maven.sh
将下面的内容复制到文件,保存
export MAVEN_HOME=/opt/apache-maven-3.8.4
export PATH=${MAVEN_HOME}/bin:${PATH}
设置好Maven的路径之后,需要运行下面的命令使其生效
source /etc/profile.d/maven.sh
验证maven是否安装成功
mvn -v
下载IK分词器并安装
下载地址:https://github.com/medcl/elasticsearch-analysis-ik
然后把zip包安装到elasticsearch/plugins目录下新建的目录analysis-ik,并解压,如下图:
然后解压ik分词器,因为ik分词器是zip包,所以需要使用unzip命令解压,如下图:
解压之后需要把ik的config目录中的所有内容复制到elasticsearch-7.16.2的config配置文件中,如下图:
最后记得一定要重启Elasticsearch服务!!!
使用IK分词器
IK分词器有两种分词模式:ik_max_word和ik_smart模式。
1.ik_max_word
会将文本做最细颗粒度的拆分,如下图:
2.ik_smart
这个分词模式的颗粒度比较粗,如下图:
查询文档
词条查询:term
词条查询不会分析查询条件,只有当词条和查询字符串完全匹配时才匹配搜索。
全文查询:match
全文查询会分析查询条件,先将查询条件进行分词,然后查询,求并集。
term词条查询
term词条查询的例子如下图:
为什么什么结果都没有查出来呢?主要是因为ES默认使用的是standar分词器,会把中文一个字一个字的分,所以查不到,如果我们查询的是"北"就能成功查询出来数据了,如下图:
因此我们在创建索引的时候,就要手动的添加索引为ik分词器,要不然ES使用的一直是默认的standar分词器。
然后添加三条文档,如下图:
查询一下结果,如下图:
重新搜索“北京”关键词,如下图:
但是如果我现在搜索的词条是"北京昌平",因为我们的文档中没有address字段为"北京昌平"的分词,所以结果什么也查不到,如下图:
这就是term词条查询,它的搜索关键字会被当做一个整体,不会继续分词,然后拿这个整体去分词库中查询。但是下面的match全文查询不是这样的,它会先把搜索关键字分词,然后拿所有的分词结果去分词库中查询,最后再把查询结果拼接在一起。
match全文查询
上面是查询结果的并集,不是查询结果的交集。
分词器以及ik中文分词器相关推荐
- python连接es_Elasticsearch --- 3. ik中文分词器, python操作es
一.IK中文分词器 1.下载安装 2.测试 #显示结果 {"tokens": [ {"token" : "上海","start_o ...
- Solr7.2.1环境搭建和配置ik中文分词器
solr7.2.1环境搭建和配置ik中文分词器 安装环境:Jdk 1.8. windows 10 安装包准备: solr 各种版本集合下载:http://archive.apache.org/dist ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十九)ES6.2.2 安装Ik中文分词器
注: elasticsearch 版本6.2.2 1)集群模式,则每个节点都需要安装ik分词,安装插件完毕后需要重启服务,创建mapping前如果有机器未安装分词,则可能该索引可能为RED,需要删除后 ...
- ES7 IK中文分词器
IK中文分词器的安装 ES默认是没有IK中文分词器的,我们要将IK中文分词器作为一个插件安装到ES中,安装的步骤也很简单: 从GitHub上下载适合自己ES版本的IK中文分词器,地址如下:https: ...
- 学习 ES 的笔记、全文检索、倒排索引、Lucene、ik中文分词器、Kibana使用Dev Tools
文章目录 感悟 新接触的单词 知识点一:ES是什么? 知识点二:ES基本概念 知识点三:1.1 什么是全文检索和Lucene? 知识点四:1.2 什么是倒排索引,Lucene实现全文检索的流程是怎样? ...
- 使用Docker快速安装部署ES和Kibana并配置IK中文分词器以及自定义分词拓展词库
使用Docker快速安装部署ES和Kibana的前提:首先需要确保已经安装了Docker环境 如果没有安装Docker的话,可以参考上一篇的内容:Linux上安装Docker 有了Docker环境后, ...
- Elasticsearch:IK 中文分词器
Elasticsearch 内置的分词器对中文不友好,只会一个字一个字的分,无法形成词语,比如: POST /_analyze {"text": "我爱北京天安门&quo ...
- 玩转ES,一文教你掌握IK中文分词器
前言 ES默认的分词器对中文分词并不友好,所以我们一般会安装中文分词插件,以便能更好的支持中文分词检索. 而ES的中文分词器中,最流行的必然是IK分词器. 一.IK分词器介绍 IK分词器在是一款基于词 ...
- ElasticSearch的IK中文分词器
目录 概述 一.安装下载 二.设置es使用ik分词器 三.效果对比 四.ik分词器自定义字典 五.ik分词器自定义字典的配置 概述 本文主要介绍了 ik 分词器在es中的一些配置以及原理,包括 下载安 ...
最新文章
- 微软私有云分享(R2)13 处理孤立资源
- 获取后台数据-Http
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1075:药房管理
- 增强现实和3D渲染技术是如何应用在SAP产品里的
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波7 - 直方图处理 - 直方图、归一化直方图
- 织梦首页html在哪儿,dedecms织梦首页去index.html
- pat00-自测5. Shuffling Machine (20)
- Spring Boot 页面国际化
- [android] android 获取网络连接信息
- 【LeetCode】每日一题(十一)面试题46. 把数字翻译成字符串 动态规划+滚动数组优化 / 递归
- 如何实现从外部APP直接跳转微信小程序的解决方案
- 56个民族下拉选择框
- Python(数据类型思维导图)
- JavaScript插入DOM
- 【强化记忆】生物选修三填空题考点强化记忆2-胚胎工程、安全伦理问题、生态工程——2017年2月25日...
- renqun_youhua=2004892,竞价推广链接后缀标识都是什么含义?
- 使用HTML写一个个人简历
- AndroidStudio下载的项目不能运行(运行Run图标变灰色,类文件图标为红色J)
- Arduino 入门教程(十六) E18-D50NK红外避障传感器
- 分享:金融短信接口应用场景详解