更新时间:2024-08-15 GMT+08:00
分享

Elasticsearch集群词库介绍

背景信息

云搜索服务的词库用于对文本进行分词,使得一些特殊词语在分词的时候能够被识别出来,便于根据关键词搜索文本数据。例如,根据公司名称来查询,如“华为”;或者根据网络流行词来查询,如“喜大普奔”。也支持基于同义词词库,根据同义词搜索文本数据。

CSS服务使用的分词器包括IK分词器和同义词分词器。IK分词器配备主词词库和停词词库;同义词分词器配备同义词词库。其中,IK分词器包含ik_max_word和ik_smart分词策略。同义词分词器使用的是ik_synonym分词策略。

  • ik_max_word:会将文本做最细粒度的拆分,比如会将“昨夜西风吹折千林梢”拆分为“昨夜西风,昨夜,西风,吹折千林梢,吹折,千林梢,千,林,折千林,千林,吹”,会穷尽各种可能的分词组合。
  • ik_smart:会做最粗粒度的拆分,比如会将“昨夜西风吹折千林梢”拆分为“昨夜西风,吹折千林梢”
CSS服务给集群预置了静态主词词库、静态停词词库、Extra主词词库和Extra停词词库这四个词库。
  • 当这些预置词库已满足集群业务的分词需求时,则集群无需配置自定义词库即可直接实现关键词搜索。
  • 当预置词库不满足集群业务分词需求时,可以给集群添加主词词库、停词词库或同义词词库,亦或者是修改预置的四个词库,使集群能够实现关键词或同义词搜索。
CSS服务的各类词库介绍请参见表1
表1 词库介绍

词库类型

说明

文件要求

自定义

主词词库

主词为用户希望进行分词的特殊词语,例如“智能手机”“喜大普奔”。主词词库则是用户自定义的特殊词语的集合。

词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,主词文件最大支持100M。如果涉及单词,必须改成小写字母。

停词词库

停词为用户不希望进行分词或者关注的词语,例如“的”“什么”“怎么”等。停词词库是用户自定义的停词词语的集合。

词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,停词文件最大支持100M。

同义词词库

同义词为意义相同的一组词语,例如“开心”“高兴”。同义词词库是用户自定义的同义词词语的集合。

词库文件必须是UTF-8无BOM格式编码的文本文件,一行一组同义词对,同义词对中的同义词间逗号隔开,同义词文件最大支持100MB。

预置

静态主词词库

静态主词词库是CSS服务预置的常用主词集合,当需要查看静态主词词库时,可以单击地址https://github.com/infinilabs/analysis-ik/blob/master/config/main.dic获取词库。

词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,静态主词文件最大支持100M。

静态停词词库

静态停词词库是CSS服务预置的常用停词集合,当需要查看静态停词词库时,可以单击地址https://github.com/infinilabs/analysis-ik/blob/master/config/stopword.dic获取词库。

词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,静态停词文件最大支持100M。

Extra主词词库

Extra主词词库是CSS服务预置的生僻主词集合,当需要查看Extra主词词库时,可以单击地址https://github.com/infinilabs/analysis-ik/blob/master/config/extra_main.dic获取词库。

词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,Extra主词文件最大支持100M。

Extra停词词库

Extra停词词库是CSS服务预置的生僻停词集合,当需要查看Extra停词词库时,可以单击地址https://github.com/infinilabs/analysis-ik/blob/master/config/extra_stopword.dic获取词库。

词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,Extra停词文件最大支持100M。

约束限制

  • 自定义词库功能上线之前(即2018年3月10日之前)创建的集群,无法使用自定义词库功能。
  • 自定义词库一般用于中文分词,如果用于英文分词,会按照除“#&+-.@_”外的特殊符号进行切分。
  • 词库文件要满足要求,不同词库的词库文件要求请参见表1
  • 操作账号必须具有配置自定义词库的权限。可以在IAM服务的“权限管理 > 权限”查看是否有以下权限,如果没有请联系服务管理员添加。
    • “CSS Administrator”角色。
    • “OBS Administrator”策略

相关文档