Elasticsearch集群词库介绍
背景信息
云搜索服务的词库用于对文本进行分词,使得一些特殊词语在分词的时候能够被识别出来,便于根据关键词搜索文本数据。例如,根据公司名称来查询,如“华为”;或者根据网络流行词来查询,如“喜大普奔”。也支持基于同义词词库,根据同义词搜索文本数据。
CSS服务使用的分词器包括IK分词器和同义词分词器。IK分词器配备主词词库和停词词库;同义词分词器配备同义词词库。其中,IK分词器包含ik_max_word和ik_smart分词策略。同义词分词器使用的是ik_synonym分词策略。
- ik_max_word:会将文本做最细粒度的拆分,比如会将“昨夜西风吹折千林梢”拆分为“昨夜西风,昨夜,西风,吹折千林梢,吹折,千林梢,千,林,折千林,千林,吹”,会穷尽各种可能的分词组合。
- ik_smart:会做最粗粒度的拆分,比如会将“昨夜西风吹折千林梢”拆分为“昨夜西风,吹折千林梢”。
- 当这些预置词库已满足集群业务的分词需求时,则集群无需配置自定义词库即可直接实现关键词搜索。
- 当预置词库不满足集群业务分词需求时,可以给集群添加主词词库、停词词库或同义词词库,亦或者是修改预置的四个词库,使集群能够实现关键词或同义词搜索。
词库类型 |
说明 |
文件要求 |
|
---|---|---|---|
自定义 |
主词词库 |
主词为用户希望进行分词的特殊词语,例如“智能手机”和“喜大普奔”。主词词库则是用户自定义的特殊词语的集合。 |
词库文件必须是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”策略