IK分词器
安装
elasticsearch-analysis-ik 官方项目地址:https://github.com/medcl/elasticsearch-analysis-ik/releases,选择适配当前elasticsearch的版本(ik版本号和elasticsearch一致)
/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.0/elasticsearch-analysis-ik-7.1.0.zip
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.0/elasticsearch-analysis-ik-7.1.0.zip
mkdir /elasticsearch/plugins/ik
unzip elasticsearch-analysis-ik-7.1.0.zip -d /elasticsearch/plugins/ik
自定义分词
需要确定IK分词器的配置地址,不同的安装方式和版本可能不同,需要通过 elasticsearch 启动日志查看 IK 分词器的配置文件路径,查看方式如下:
cat /elasticsearch/logs/elasticsearch.log
vim /elasticsearch/config/analysis-ik/IKAnalyzer.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">custom_dictionary.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
vim /elasticsearch/config/analysis-ik/custom_dictionary.dic
倍耐力
枫车电商
最后重启 elasticsearch,使得配置生效。通过 kibana 调试分词效果。
POST goods/_analyze
{
"analyzer": "ik_smart",
"text": "枫车电商倍耐力座垫重返帝国"
}
配置热更新
新建一个 Nginx 站点,站点目录下放置自定义配置文件,允许通过域名远程访问下载该词典。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">custom_dictionary.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">http://elasticsearch.com/custom_dictionary.dic</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
PS:如果是本地部署的 Nginx ,记得在 elasticsearch 主机中添加 host 指向
127.0.1.1 centos centos
192.168.9.201 elasticsearch.com
最后重启 elasticsearch,使得配置生效。通过 kibana 调试分词效果。
HanLP 分词器
官方项目地址:https://www.hanlp.com/
github地址:https://github.com/KennFalcon/elasticsearch-analysis-hanlp
安装
#安装插件
/elasticsearch/bin/elasticsearch-plugin install https://github.com/KennFalcon/elasticsearch-analysis-hanlp/releases/download/v7.1.0/elasticsearch-analysis-hanlp-7.1.0.zip
版本不一致解决
unzip elasticsearch-analysis-hanlp-master.zip
cd cd elasticsearch-analysis-hanlp-master
vim gradle.properties
elasticsearchVersion = 7.10.2
下载部署 JDK 环境 https://www.oracle.com/java/technologies/downloads/#java8
以下省略……,待补充
./gradlew assemble
拼音分词器
elasticsearch-analysis-pinyin 官方项目地址:https://github.com/medcl/elasticsearch-analysis-pinyin/,选择适配当前elasticsearch的版本(pinyin版本号和elasticsearch一致)
安装
/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.1.0/elasticsearch-analysis-pinyin-7.1.0.zip
拼音分词器参数
参数 | 默认值 | 含义 | |||||||
---|---|---|---|---|---|---|---|---|---|
keep_first_letter | true | 词语字首字母刘德华``ldh |
|||||||
keep_separate_first_letter | false | 仅开头首字母刘德华 l |
|||||||
limit_first_letter_length | 16 | 分析结果的最大长度 | |||||||
keep_full_pinyin | true | 单字完整拼音刘德华 liu de hua |
|||||||
keep_joined_full_pinyin | false | 词语完整拼音刘德华 liudehua |
|||||||
keep_none_chinese | true | 结果保留非中文字母或者数字 | |||||||
keep_none_chinese_together | true | 将非中文字母保持在一起 DJ音乐家 DJyinyuejia |
|||||||
keep_none_chinese_in_first_letter | true | 首字母保留非中文字母 刘德华AT2016 ldhat2016 |
|||||||
keep_none_chinese_in_joined_full_pinyin | false | 保留非中文字母加入完整拼音 刘德华2016 liudehua2016 |
|||||||
none_chinese_pinyin_tokenize | true | 如果是拼音,则将非中文字母分成单独的拼音词liudehuaalibaba13zhuanghan``liu de``hua``a li``ba``ba``13``zhuang``han 必须开启 keep_none_chinese 、keep_none_chinese_together |
|||||||
keep_original | false | 保留原始输入 | |||||||
lowercase | true | 小写非中文字母 | |||||||
trim_whitespace | true | 去除空格 | |||||||
remove_duplicated_term | false | 删除重复的术语 | |||||||
ignore_pinyin_offset | true |