簡介
Elasticsearch自帶standard分詞法淋纲,但是這個分詞法對英文支持不錯喜颁,對中文支持卻很差碾牌,我們可以試驗一下,直接在head插件中使用復(fù)合查詢玷犹,或者你也可以直接瀏覽器訪問
http://xxx.xxx.xxx.xxx:9200/_analyze?analyzer=standard&pretty=true&text=hello 中國人
{
"tokens": [
{
"token": "hello",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "中",
"start_offset": 6,
"end_offset": 7,
"type": "<IDEOGRAPHIC>",
"position": 1
},
{
"token": "國",
"start_offset": 7,
"end_offset": 8,
"type": "<IDEOGRAPHIC>",
"position": 2
},
{
"token": "人",
"start_offset": 8,
"end_offset": 9,
"type": "<IDEOGRAPHIC>",
"position": 3
}
]
}
結(jié)果可以看到混滔,中文的都被解析成了一個個的單字
- 如果安裝了IK 的分詞器會是什么樣的效果呢?(先給大家看下效果)
http://xxx.xxx.xxx.xxx:9200/_analyze?analyzer=ik_max_word&pretty=true&text=hello 中國人
{
"tokens": [
{
"token": "hello",
"start_offset": 0,
"end_offset": 5,
"type": "ENGLISH",
"position": 0
},
{
"token": "中國人",
"start_offset": 6,
"end_offset": 9,
"type": "CN_WORD",
"position": 1
},
{
"token": "中國",
"start_offset": 6,
"end_offset": 8,
"type": "CN_WORD",
"position": 2
},
{
"token": "國人",
"start_offset": 7,
"end_offset": 9,
"type": "CN_WORD",
"position": 3
}
]
}
結(jié)果可以看到歹颓,中文按照一定的語義進(jìn)行了拆分坯屿,這就是語義分詞
安裝
- IK需要使用maven來編譯,所以先要安裝maven巍扛,配置maven的yum源
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
- 安裝maven
yum install apache-maven
- 檢測maven是否安裝成功
mvn -version
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
Maven home: /usr/share/apache-maven
Java version: 1.8.0_181, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.21.1.el7.x86_64", arch: "amd64", family: "unix"
注意领跛,必須要下載當(dāng)前Elasticsearch所對應(yīng)的IK版本,具體的對應(yīng)關(guān)系github的頁面里面有說明
- 如果不記得當(dāng)前安裝Elasticsearch 的版本號撤奸,可以查詢
http://xxx.xxx.xxx.xxx:9200
{
"name": "Cancer",
"cluster_name": "elasticsearch",
"cluster_uuid": "ji3aSaT4TAKuRO34a4twnQ",
"version": {
"number": "2.4.6",
"build_hash": "5376dca9f70f3abef96a77f4bb22720ace8240fd",
"build_timestamp": "2017-07-18T12:17:44Z",
"build_snapshot": false,
"lucene_version": "5.5.4"
},
"tagline": "You Know, for Search"
}
可以看出當(dāng)前Elasticsearch的版本是 2.4.6 吠昭,然后根據(jù)上面github地址中的說明喊括,下載對應(yīng) 1.10.6 版本的IK插件elasticsearch-analysis-ik-1.10.6.zip,我是放在 /usr/local/src 目錄下的
- 解壓下載包矢棚,并在解壓后的文件下執(zhí)行mvn package郑什,直到打包完成
cd /usr/local/src
unzip elasticsearch-analysis-ik-1.10.6.zip
cd elasticsearch-analysis-ik-1.10.6
mvn package
然后就是漫長的等待了,感覺有十幾分鐘吧
- 打包完成之后蒲肋,開始安裝插件
- 當(dāng)前目錄下蹦误,進(jìn)入target\releases 文件夾,里面打包生成了壓縮包elasticsearch-analysis-ik-1.10.6.zip肉津,解壓之强胰。
- 在Elasticsearch的插件目錄/usr/share/elasticsearch/plugins下,新建文件夾ik
- 復(fù)制上面解壓后的文件到 文件夾ik中
- 重啟下Elasticsearch
systemctl restart elasticsearch
測試安裝是否成功
- 按照文章開頭的方法測試下中文分詞的效果