4,中文分词器
4.1. smartCN(这个是参照别人的安装方法安装的有兴趣可以试一下)
一个简单的中文或中英文混合文本的分词器
这个插件提供 smartcn analyzer 和 smartcn_tokenizer tokenizer,而且不需要配置
# 安装
bin/elasticsearch-plugin install analysis-smartcn
# 卸载
bin/elasticsearch-plugin remove analysis-smartcn
测试一下
可以看到,“今天天气真好”用smartcn分析器的结果是:
[ 今天 , 天气 , 真 , 好 ]
如果用standard分析器的话,结果会是:
[ 今 ,天 ,气 , 真 , 好 ]
4.2 我们一般都会用 IK分词器(我们就具体搭建一下ik中文分词器)
下载对应的版本,这里我下载6.8.6:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v6.8.6
linux下使用wget命令(进入es插件目录)
cd /usr/local/java/elasticsearch-6.8.6/plugins
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.8.6/elasticsearch-analysis-ik-6.8.6.zip
然后,在Elasticsearch的plugins目录下建一个ik目录,将刚才下载的文件解压到该目录下
unzip elasticsearch-analysis-ik-6.8.6.zip
最后,重启Elasticsearch
查看es启动情况
su esuser
cd /usr/local/java/elasticsearch-6.8.6/bin
ps -ef | grep elasticsearch
重启
./elasticsearch
重启完成下面我们看下IK中文分词器的如何使用
IK有两种颗粒度的拆分:
ik_smart
: 会做最粗粒度的拆分
ik_max_word
: 会将文本做最细粒度的拆分
1) ik_smart 拆分
GET /_analyze
{
"text":"中华人民共和国国徽",
"analyzer":"ik_smart"
}
2)ik_max_word 拆分
GET /_analyze
{
"text":"中华人民共和国国徽",
"analyzer":"ik_max_word"
}