IK分词器

 IK分词器

1 目标

  • 能安装IK分词器
  • 会配置扩展词库和停用词库

2 讲解

在进行词条查询时,我们搜索“搜索”却没有搜索到数据!

原因:lucene默认是单字分词,在开发中不符合查询的需求,需要定义一个支持中文的分词器。

解决方案:IK分词器

(1)IK分词器简介

IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。

(2)ElasticSearch集成IK分词器


1.解压elasticsearch-analysis-ik-2.x后,将文件夹拷贝到elasticsearch-5.6.8\plugins下,并重命名文件夹为ik
2. 重新启动ElasticSearch,即可加载IK分词器

IK分词器_第1张图片

IK分词器_第2张图片

在使用ik分词器之前:使用rest方式访问elasticsearch的分词效果,默认的分词是standard

http://127.0.0.1:9200/_analyze?analyzer=standard&pretty=true&text=我是中国人 效果如下:

IK分词器_第3张图片

(3)IK分词器测试

IK提供了两个分词算法ik_smart(最小切分) 和 ik_max_word(最细切分)

最小切分:在浏览器地址栏输入地址

http://127.0.0.1:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员 效果如下:

IK分词器_第4张图片

最细切分:在浏览器地址栏输入地址

http://127.0.0.1:9200/_analyze?analyzer=ik_max_word&pretty=true&text=我是程序员 效果如下:

IK分词器_第5张图片

(4)拓展词库

传智播客,默认IK分词是单字分词,想让它做为一个词。

IK分词器_第6张图片

需要配置,IKAnalyzer.cfg.xml:

IK分词器_第7张图片

配置文件中添加一个ext.dic和stop.dic,如果多个拓展词用逗号分开,如下:





	IK Analyzer 扩展配置
	
	ext.dic
	 
	stop.dic
	
	
	
	

ext.dic使用UTF-8编辑

IK分词器_第8张图片

stop.dic使用UTF-8编辑

IK分词器_第9张图片

重启Elasticsearch,再访问测试

效果如下:

IK分词器_第10张图片

在ElasticSearch没有索引的情况下,插入文档,默认自动创建索引和索引映射是无法使用IK分词器的。

要想让索引库可以使用ik分词器,必须要手动创建映射的配置。如何手动创建映射呢?下回分解。

 

 

你可能感兴趣的:(Elasticsearch)