前言
CentOS7下安装ElasticSearch7.6.1详细教程 ElasticSearch客户端Kibana7.6.1安装教程 ElasticSearch分词器IK安装教程
使用IK分词器对查询内容进行划分。
1、安装IK分词器
我们后续也需要使用Elasticsearch来进行中文分词,所以需要单独给Elasticsearch安装IK分词器插件。以下为具体安装步骤.
版本声明
CenOS:7; JDK:1.8; Elasticsearch:7.6.1; Kibana:7.6.1; IK:7.6.1;
注意:Elasticsearch和IK的版本需要对应。
下载Elasticsearch IK分词器
下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases 注意: IK的版本必须和Elasticsearch的版本对应,否则启动Elasticsearch的时候会报错。以下是我下载IK 8.1.2的版本,然后启动ES的时候报错如下:
切换到shcms用户,并在es的安装目录下/plugins创建ik
su shcms
mkdir -p /usr/local/es/elasticsearch-7.6.1/plugins/ik
将下载的ik分词器上传并解压到该目录
cd /opt/es/elasticsearch-7.6.1/plugins/ik
unzip elasticsearch-analysis-ik-7.6.1.zip
重启Elasticsearch
1、先查询PID,然后杀死进程:
ps -ef | grep elasticsearch
2、切换es用户,启动es:
su shcms
cd /opt/es/elasticsearch-7.6.1/bin
./elasticsearch -d
启动ES之后,ES会自己加载IK插件,如果启动ES成功,说明IK安装成功:
重启Kibana
ES重启之后,ES的客户端Kibana也应该重启 。
1、root用户或者es用户都可以
2、cd /opt/es/kibana-7.6.1-linux-x86_64/bin
3、./kibana -d
2、测试分词效果
POST _analyze
{
"analyzer":"standard",
"text":"我爱你中国"
}
不推荐使用standard模式 ,推荐使用ik模式。
POST _analyze
{
"analyzer": "ik_smart",
"text": "中华人民共和国"
}
#ik_smart:会做最粗粒度的拆分;
也不推荐使用最粗粒度。当我搜索“中华”的时候,是匹配不到数据的。
POST _analyze
{
"analyzer":"ik_max_word",
"text":"中华人民共和国"
}
#ik_max_word:会将文本做最细粒度的拆分
3、指定IK分词器作为默认分词器
ES的默认分词设置是standard,这个在中文分词时就比较尴尬了,会单字拆分,比如我搜索关键词“清华大学”,这时候会按“清”,“华”,“大”,“学”去分词,然后搜出来的都是些“清清的河水”,“中华儿女”,“地大物博”,“学而不思则罔”之类的莫名其妙的结果,这里我们就想把这个分词方式修改一下,于是呢,就想到了ik分词器,有两种ik_smart和ik_max_word。 ik_smart会将“清华大学”整个分为一个词,而ik_max_word会将“清华大学”分为“清华大学”,“清华”和“大学”,按需选其中之一就可以了。 修改默认分词方法(这里修改school_index索引的默认分词为:ik_max_word):
PUT /school_index
{
"settings" : {
"index" : {
"analysis.analyzer.default.type": "ik_max_word"
}
}
}
|