Elasticsearch安装与使用IK中文分词器
1、简介
IKAnalyzer 是一个开源的,基于 Java 语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer 已经推出了3个大版本。最初,它是以开源项目 Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。 最近刚刚发布了 3.1.1Stable 稳定版本,新版本的 IKAnalyzer 则发展为面向 Java 的公用分词组件,独立于 Lucene 项目,同时提供了对 Lucene 的默认优化实现。
2、安装IK中文分词器
下载IK中文分词器:
注意:选择的IK分词器版本一定要与你的 Elasticsearch 版本一致,否则就无法启动 Elasticsearch 服务。
例如,本人的 Elasticsearch 版本为:7.11.1,所有下载的IK分词器版本也为:7.11.1。
(1)下载完成后,解压zip文件。
(2)然后进入 Elasticsearch 目录下的 plugins 目录,在 plugins 目录下创建一个名为:ik 的文件夹。
(3)将解压后的文件全拷贝到到该:elasticsearch-7.11.1pluginsik 文件夹下,如下图:
(4)重启 Elasticsearch 服务。
3、IK中文分词器的使用
根据官方的建议,IK分词器的名字可以使用: ik_max_word 或者 ik_smart。
ik_max_word:会将文本做最细粒度的拆分,比如会将“朝暮轮回,四季更替”拆分为 “朝暮、轮回、四季、更替、四、季”。
ik_smart:会做最粗粒度的拆分,比如会将“朝暮轮回,四季更替”拆分为 “朝暮、轮回、四季、更替”。
3.1 查看分词结果
POST /_analyze { "analyzer":"ik_max_word", "text":"您好,欢迎访问 pan_junbiao的博客" }
执行结果:
3.2 创建索引
PUT /user_info { "settings": { "index": { "number_of_shards": "2", "number_of_replicas": "0" } }, "mappings": { "properties": { "id": { "type": "integer" }, "user_name": { "type": "text" }, "blog_remark": { "type": "text", "analyzer": "ik_max_word" } } } }
执行结果:
3.3 批量添加数据
POST _bulk { "create" : { "_index" : "user_info", "_id" : "1001" } } { "id":1, "user_name": "pan_junbiao的博客","blog_remark": "您好,欢迎访问 pan_junbiao的博客"} { "create" : { "_index" : "user_info", "_id" : "1002" } } { "id":2,"user_name": "pan_junbiao的博客","blog_remark": "您好,欢迎访问 pan_junbiao的博客"} { "create" : { "_index" : "user_info", "_id" : "1003" } } { "id":3,"user_name": "pan_junbiao的博客","blog_remark": "https://blog..net/pan_junbiao"}
执行结果:
3.4 查询数据
POST /user_info/_search { "query": { "match": { "blog_remark": "博客" } } }
执行结果: