ES中文分词器-ik分词器安装
IK分詞器安裝
1、環(huán)境準(zhǔn)備
Elasticsearch 要使用 ik,就要先構(gòu)建 ik 的 jar包,這里要用到 maven 包管理工具,而 maven 需要java 環(huán)境,而 Elasticsearch 內(nèi)置了jdk, 所以可以將JAVA_HOME設(shè)置為Elasticsearch 內(nèi)置的jdk
1)設(shè)置JAVA_HOME
vim /etc/profile # 在profile文件末尾添加 #java environment export JAVA_HOME=/opt/elasticsearch-7.4.0/jdk export PATH=$PATH:${JAVA_HOME}/bin# 保存退出后,重新加載profile source /etc/profile2)下載maven安裝包
wget http://mirror.cc.columbia.edu/pub/software/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz3)解壓maven安裝包
tar xzf apache-maven-3.1.1-bin.tar.gz4)設(shè)置軟連接
ln -s apache-maven-3.1.1 maven5)設(shè)置path
打開(kāi)文件
vim /etc/profile.d/maven.sh將下面的內(nèi)容復(fù)制到文件,保存
export MAVEN_HOME=/opt/maven export PATH=${MAVEN_HOME}/bin:${PATH}設(shè)置好Maven的路徑之后,需要運(yùn)行下面的命令使其生效
source /etc/profile.d/maven.sh6)驗(yàn)證maven是否安裝成功
mvn -v2、安裝IK分詞器
1)下載IK
wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip執(zhí)行如下圖:
2)解壓IK
由于這里是zip包不是gz包,所以我們需要使用unzip命令進(jìn)行解壓,如果本機(jī)環(huán)境沒(méi)有安裝unzip,請(qǐng)執(zhí)行:
yum install zip yum install unzip解壓IK
unzip v7.4.0.zip3)編譯jar包
# 切換到 elasticsearch-analysis-ik-7.4.0目錄 cd elasticsearch-analysis-ik-7.4.0/ #打包 mvn package4) jar包移動(dòng)
package執(zhí)行完畢后會(huì)在當(dāng)前目錄下生成target/releases目錄,將其中的elasticsearch-analysis-ik-7.4.0.zip。拷貝到elasticsearch目錄下的新建的目錄plugins/analysis-ik,并解壓
#切換目錄 cd /opt/elasticsearch-7.4.0/plugins/ #新建目錄 mkdir analysis-ik cd analysis-ik #執(zhí)行拷貝 cp -R /opt/elasticsearch-analysis-ik-7.4.0/target/releases/elasticsearch-analysis-ik-7.4.0.zip /opt/elasticsearch-7.4.0/plugins/analysis-ik #執(zhí)行解壓 unzip /opt/elasticsearch-7.4.0/plugins/analysis-ik/elasticsearch-analysis-ik-7.4.0.zip5)拷貝辭典
將elasticsearch-analysis-ik-7.4.0目錄下的config目錄中的所有文件 拷貝到elasticsearch的config目錄
cp -R /opt/elasticsearch-analysis-ik-7.4.0/config/* /opt/elasticsearch-7.4.0/config記得一定要重啟Elasticsearch!!!
3、使用IK分詞器
IK分詞器有兩種分詞模式:ik_max_word和ik_smart模式。
1、ik_max_word
會(huì)將文本做最細(xì)粒度的拆分,比如會(huì)將“乒乓球明年總冠軍”拆分為“乒乓球、乒乓、球、明年、總冠軍、冠軍。
#方式一ik_max_word GET /_analyze {"analyzer": "ik_max_word","text": "乒乓球明年總冠軍" }ik_max_word分詞器執(zhí)行如下:
{"tokens" : [{"token" : "乒乓球","start_offset" : 0,"end_offset" : 3,"type" : "CN_WORD","position" : 0},{"token" : "乒乓","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 1},{"token" : "球","start_offset" : 2,"end_offset" : 3,"type" : "CN_CHAR","position" : 2},{"token" : "明年","start_offset" : 3,"end_offset" : 5,"type" : "CN_WORD","position" : 3},{"token" : "總冠軍","start_offset" : 5,"end_offset" : 8,"type" : "CN_WORD","position" : 4},{"token" : "冠軍","start_offset" : 6,"end_offset" : 8,"type" : "CN_WORD","position" : 5}] }2、ik_smart
會(huì)做最粗粒度的拆分,比如會(huì)將“乒乓球明年總冠軍”拆分為乒乓球、明年、總冠軍。
ik_smart分詞器執(zhí)行如下:
{"tokens" : [{"token" : "乒乓球","start_offset" : 0,"end_offset" : 3,"type" : "CN_WORD","position" : 0},{"token" : "明年","start_offset" : 3,"end_offset" : 5,"type" : "CN_WORD","position" : 1},{"token" : "總冠軍","start_offset" : 5,"end_offset" : 8,"type" : "CN_WORD","position" : 2}] }由此可見(jiàn) 使用ik_smart可以將文本"text": "乒乓球明年總冠軍"分成了【乒乓球】【明年】【總冠軍】
這樣看的話,這樣的分詞效果達(dá)到了我們的要求。
總結(jié)
以上是生活随笔為你收集整理的ES中文分词器-ik分词器安装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 第一次接触万物接对象
- 下一篇: select标签,根据标签的文本值设置选