ElasticSearch中文分词器-IK分词器的使用
IK分词器的使用
首先我们通过Postman
发送GET
请求查询分词效果
GET http://localhost:9200/_analyze
{"text":"农业银行"
}
得到如下结果,可以发现es的默认分词器无法识别中文中农业
、银行
这样的词汇,而是简单的将每个字拆完分为一个词,这显然不符合我们的使用要求。
Copy
{"tokens": [{"token": "农","start_offset": 0,"end_offset": 1,"type": "<IDEOGRAPHIC>","position": 0},{"token": "业","start_offset": 1,"end_offset": 2,"type": "<IDEOGRAPHIC>","position": 1},{"token": "银","start_offset": 2,"end_offset": 3,"type": "<IDEOGRAPHIC>","position": 2},{"token": "行","start_offset": 3,"end_offset": 4,"type": "<IDEOGRAPHIC>","position": 3}]
}
首先我们访问 https://github.com/medcl/elasticsearch-analysis-ik/releases 下载与es对应版本的中文分词器。将解压后的后的文件夹放入es根目录下的plugins目录下,重启es即可使用。
我们这次加入新的参数"analyzer":"ik_max_word"
- k_max_word:会将文本做最细粒度的拆分,例如「中华人民共和国国歌」会被拆分为「中华人民共和国、中华人民、中华、华人、人民共和国、人民、人、民、共和国、共和、和、国国、国歌」,会穷尽各种可能的组合
- ik_smart:会将文本做最粗粒度的拆分,例如「中华人民共和国国歌」会被拆分为「中华人民共和国、国歌」
GET http://localhost:9200/_analyze
{"analyzer":"ik_max_word","text":"农业银行"
}
得到如下结果
{"tokens": [{"token": "农业银行","start_offset": 0,"end_offset": 4,"type": "CN_WORD","position": 0},{"token": "农业","start_offset": 0,"end_offset": 2,"type": "CN_WORD","position": 1},{"token": "银行","start_offset": 2,"end_offset": 4,"type": "CN_WORD","position": 2}]
}
百度搜索中每天都会收录新的词汇,es中也可以进行扩展词汇。
我们首先查询弗雷尔卓德字段
GET http://localhost:9200/_analyze
{"analyzer":"ik_max_word","text":"弗雷尔卓德"
}
仅仅可以得到每个字的分词结果,我们需要做的就是使分词器识别到弗雷尔卓德
也是一个词语。
{"tokens": [{"token": "弗","start_offset": 0,"end_offset": 1,"type": "CN_CHAR","position": 0},{"token": "雷","start_offset": 1,"end_offset": 2,"type": "CN_CHAR","position": 1},{"token": "尔","start_offset": 2,"end_offset": 3,"type": "CN_CHAR","position": 2},{"token": "卓","start_offset": 3,"end_offset": 4,"type": "CN_CHAR","position": 3},{"token": "德","start_offset": 4,"end_offset": 5,"type": "CN_CHAR","position": 4}]
}
首先进入es根目录中的plugins文件夹下的ik文件夹,进入config目录,创建custom.dic
文件,写入弗雷尔卓德
。同时打开IKAnalyzer.cfg
文件,将新建的custom.dic
配置其中,重启es。
<?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">custom.doc</entry><!--用户可以在这里配置自己的扩展停止词字典--><entry key="ext_stopwords"></entry><!--用户可以在这里配置远程扩展字典 --><!-- <entry key="remote_ext_dict">words_location</entry> --><!--用户可以在这里配置远程扩展停止词字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
再次查询发现es的分词器可以识别到弗雷尔卓德词汇
{"tokens": [{"token": "弗雷尔卓德","start_offset": 0,"end_offset": 5,"type": "CN_WORD","position": 0},{"token": "弗雷尔","start_offset": 0,"end_offset": 3,"type": "CN_WORD","position": 1},{"token": "卓","start_offset": 3,"end_offset": 4,"type": "CN_CHAR","position": 2},{"token": "德","start_offset": 4,"end_offset": 5,"type": "CN_CHAR","position": 3}]
}
我们也可以配置远程扩展字典
我们启动一个nginx服务器,创建分词文件 es/fenci.txt
弗雷尔卓德
德玛西亚
祖安
配置访问路径
<?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">custom.doc</entry><!--用户可以在这里配置自己的扩展停止词字典--><entry key="ext_stopwords"></entry><!--用户可以在这里配置远程扩展字典 --><!-- <entry key="remote_ext_dict">http://xxx.xxx.xxx.xx/es/fenci.txt</entry> --><!--用户可以在这里配置远程扩展停止词字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
本文转载自:
作者: 海向
出处:https://www.cnblogs.com/haixiang/p/11810799.html
ElasticSearch中文分词器-IK分词器的使用相关推荐
- 本地elasticsearch中文分词器 ik分词器安装及使用
ElasticSearch 内置了分词器,如标准分词器.简单分词器.空白词器等.但这些分词器对我们最常使用的中文并不友好,不能按我们的语言习惯进行分词. ik分词器就是一个标准的中文分词器.它可以根据 ...
- 使用Docker 安装Elasticsearch、Elasticsearch-head、IK分词器 和使用
使用Docker 安装Elasticsearch.Elasticsearch-head.IK分词器 和使用 原文:使用Docker 安装Elasticsearch.Elasticsearch-head ...
- ElasticSearch 6.0.0 IK分词 Kibana 6.0.0
ElasticSearch 6.0.0 & IK分词 & Kibana 6.0.0 1. 安装ES 6.0.0 docker run -itd -p 9200:9200 -p 9300 ...
- Elasticsearch生产实战(ik分词器、拼音分词、自动补全、自动纠错)
目录 一.IK分词器 1.IK分词器介绍 2.安装 3.使用 4.自定义词库 二.拼音分词器 1.拼音分词器介绍 2.安装 三.自动补全 1.效果演示 2.实战 四.自动纠错 1.场景描述 2.DSL ...
- ES入门学习:ElasticSearch、Kibana、ik分词器的安装、简单使用及SpringBoot集成
前言 es是采用Java语言开发,因此,想要安装运行es需要提前准备好jdk环境,关于linux配置jdk在前文linux配置jdk 本文主要介绍es的安装.kibana的安装和简单使用及ik分词器的 ...
- 白话Elasticsearch29-IK中文分词之IK分词器配置文件+自定义词库
文章目录 概述 ik配置文件 IK自定义词库 自定义词库 Step1 : 新建自定义分词库 Step2 : 添加到ik的配置文件中 Step3 :重启es ,查看分词 自定义停用词库 Step1 : ...
- 【虚拟化】docker安装ElasticSearch+Kibana,下载IK分词器
1.拉取镜像 docker pull elasticsearch:7.5.0 2.配置 mkdir -p /mydata/elasticsearch/config # 用来存放配置文件 mkdir - ...
- elasticsearch安装和使用ik分词器
在使用elasticsearch的时候,如果不额外安装分词器的话,在处理text字段时会使用elasticsearch自带的默认分词器,我们来一起看看默认分词器的效果: 环境信息 本次实战用到的ela ...
- 分词器——ik——分词算法
IK Analyzer 3.0特性 采用了特有的"正向迭代最细粒度切分算法",具有80万字/秒的高速处理能力 采用了多子处理器分析模式,支持:英文字母(IP地址.Email.URL ...
最新文章
- MATLAB_no.2:关于眼睛的_cutab=[cutab;a b];_cutab(:,2)-cutab(:,1):
- html5 作业调度,Net作业调度(五)—quartz.net动态添加job设计
- python弹幕代码_只需3 行代码就可以获取B站(弹幕、评论、用户)数据
- paradox 修改字段长度_400字的作文就只能写400字?刘强东:这不是笑话
- Javascript let和const
- js 将多个对象合并成一个对象 assign方法
- python模块下载1002python模块下载_【Python】Python的urllib模、urllib2模块的网络下载文件...
- 最新VSCode格式化代码不换行
- HTML5基础学习-表格标签
- 数据库系统——基本概念
- 噪音分贝测试软件在线,分贝测试(在线分贝测试仪)
- 计算机软件技术实习——迷宫算法核心
- 高效沟通的方法与技巧(转自飞马网)
- 能拿驾照就能通过 Elastic 认证考试!
- 07-HTML通用属性
- mac安装linux时触控板不能用,macbookpro上装Deepin 20.2后wifi和触摸板不可用的解决
- 美国计算机专业四年毕业率达多少,卡内基梅隆大学毕业率知多少
- 解释源代码文件、目标代码文件和可执行文件之间的区别
- 7.3_minibatch-sgd
- 解决ORA-01111, ORA-01110, ORA-01157