IK分词插件(英文名为analysis-ik)是阿里云Elasticsearch的扩展插件,默认不能卸载。该插件在开源插件的基础上,扩展支持了对象存储服务OSS(Object Storage Service)词典文件的动态加载,可以实现IK词典的冷更新和热更新。本文介绍如何使用IK分词插件。
前提条件
确保集群状态为正常。可在基本信息页面查看,具体操作请参见查看实例的基本信息。
词典冷热更新对比
阿里云Elasticsearch的IK分词插件支持IK词典冷更新和IK词典热更新,两者区别如下。
更新方式 | 生效方式 | 加载方式 | 说明 |
---|---|---|---|
冷更新 | 对整个集群的词典进行更新操作,需要重启集群才能生效。 | 系统将上传的词典文件传送到Elasticsearch节点上,并修改IKAnalyzer.cfg.xml文件,然后重启Elasticsearch节点加载词典文件。 | IK词典冷更新支持修改IK自带的主词库和停用词主词库。在IK词典冷更新页面可以看到系统自带的主词典为SYSTEM_MAIN.dic,系统自带的停用词主词典为SYSTEM_STOPWORD.dic。
注意 如果您需要自定义配置词库文件(IKAnalyzer.cfg.xml),可下载词典并修改后重新上传,具体操作请参见更新词库文件。
|
热更新 | 第一次上传词典文件时,会对整个集群的词典进行更新,需要重启集群才能生效;二次上传同名文件不会触发集群重启,在运行过程中直接加载词库。 | 当词典文件内容发生变化时,上传词典文件后Elasticsearch节点能自动加载词典文件,实现词典的更新操作。
如果词典文件列表发生变化,例如上传新词典文件或删除词典文件,那么整个集群都需要重新加载词典的配置(因为会涉及到修改IKAnalyzer.cfg.xml文件)。 |
第一次上传词典文件时,需要修改IKAnalyzer.cfg.xml文件,所以在更新词典后,需要重启集群才能生效。 |
注意 对于已经配置了IK分词的索引,在IK词典冷更新或热更新操作完成后将只对新数据生效。如果您希望对全部数据生效,需要重建索引。
词典文件说明
词典类型 | 词典说明 | 相关限制 | 更新方式 |
---|---|---|---|
主分词词典 | 在Elasticsearch集群中创建索引时,如果指定了主分词词典,那么向集群中写入数据时,如果数据中包含主分词词典中的词,集群就会建立索引,并且该索引能通过关键词被查询到。 |
|
IK词典冷更新 |
停用词词典 | 在Elasticsearch集群中创建索引时,如果指定了停用词词典,那么向集群中写入数据时,如果数据中包含停用词词典中的词,该词会被过滤掉。
阿里云Elasticsearch默认的停用词词库配置文件中,包含了一些默认的停用词,例如:a、an、and、are、as、at、be、but、by、for、if、in、into、is、it、no、not、of、on、or、such、that、the、their、then、there、these、they、this、to、was、will、with。如果您需要去掉一些不需要的默认停用词,可参见更新词库文件,下载并修改内容,然后将文件重命名为SYSTEM_STOPWORD.dic后重新上传。
说明 如果您需要使用中文停用词,可参考官方Elasticsearch默认的IK分词配置文件中config目录下的extra_stopword.dic文件。该文件中包含的停用词包括:也、了、仍、从、以、使、则、却、又、及、对、就、并、很、或、把、是、的、着、给、而、被、让、在、还、比、等、当、与、于、但。
|
IK词典冷更新
IK词典热更新
更新词库文件
如果您需要更新已经上传的词库文件,可直接下载对应文件,修改后重新上传。以SYSTEM_STOPWORD.dic为例,更新词库文件的步骤如下: