1.什么是IK分词器
其实elasticsearch自带分词器,我们先用下自带分词器看看
我们在浏览器地址栏输入http://127.0.0.1:9200/_analyze?analyzer=chinese&pretty=true&text=我是程序员,浏览器显示效果如下
默认的中文分词是将每个字看成一个词,这显然是不符合要求的,所以我们需要安装中文分词器来解决这个问题。
IK分词是一款国人开发的相对简单的中文分词器。虽然开发者自2012年之后就不在维护了,但在工程应用中IK算是比较流行的一款!我们今天就介绍一下IK中文分词器的使用。
2.IK分词器安装
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases 这里我下载的5.6.8版本
(1)先将其解压,将解压后的elasticsearch文件夹重命名文件夹为ik
(2)将ik文件夹拷贝到elasticsearch/plugins 目录下。
(3)重新启动,即可加载IK分词器
3.IK分词器测试
IK提供了两个分词算法ik_smart 和 ik_max_word其中 ik_smart 为最少切分,ik_max_word为最细粒度划分
我们分别来试一下
(1)最小切分:在浏览器地址栏输入地址
http://127.0.0.1:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员
输出的结果为:
(2)最细切分:在浏览器地址栏输入地址
http://127.0.0.1:9200/_analyze?analyzer=ik_max_word&pretty=true&text=我是程序员
输出的结果为:
4.自定义词库
在使用某些新颖词,不能被识别的,我们可以创建自定义词库
步骤:
(1)进入elasticsearch/plugins/ik/config目录
(2)新建一个my.dic文件,编辑内容:
新颖词
新颖词
写你自定义的词
顶上记得空一格,保存时保存格式为utf-8
(3)修改IKAnalyzer.cfg.xml(在ik/config目录下)
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!‐‐用户可以在这里配置自己的扩展字典 ‐‐>
<entry key="ext_dict">my.dic</entry>
<!‐‐用户可以在这里配置自己的扩展停止词字典‐‐>
<entry key="ext_stopwords"></entry>
</properties>
(4)重新启动elasticsearch,通过浏览器测试分词效果
5.在springboot中使用分词器
创建实体类实现序列化Serializable
在需要分词的字段上加上注解@Field
至于elasticsearch在springboot中的详细使用这里不做具体说明了