首先说说分词器,分词,英语分词很好分,就是按固定的英文的空格,或者“-
”。中文分词就稍微有点复杂了,而 Elasticsearch 默认是带分词器了,我们来测试一下。
http://123.88.88.88:9200/_analyze?analyzer=standard&pretty=true&text=sojson在线工具
得出的结果如下:
{
"tokens" : [ {
"token" : "sojson",
"start_offset" : 0,
"end_offset" : 6,
"type" : "",
"position" : 0
}, {
"token" : "在",
"start_offset" : 6,
"end_offset" : 7,
"type" : "",
"position" : 1
}, {
"token" : "线",
"start_offset" : 7,
"end_offset" : 8,
"type" : "",
"position" : 2
}, {
"token" : "工",
"start_offset" : 8,
"end_offset" : 9,
"type" : "",
"position" : 3
}, {
"token" : "具",
"start_offset" : 9,
"end_offset" : 10,
"type" : "",
"position" : 4
} ]
}
发现中文是一个字一个字的分对吧。我们要的需求应该是,sojson、在线、工具吧。
elasticsearch-analysis-ik 是一款中文的分词插件,支持自定义词库,也有默认的词库。
开始安装。
1、下载
下载地址为: https://github.com/medcl/elasticsearch-analysis-ik
或者从官网地址搜索:https://www.elastic.co 搜索IK
即可。
本博客下面也提供了elasticsearch-analysis-ik.zip的下载链接。
2、解压。
把下载的 elasticsearch-analysis-ik.zip解压。
3、 Maven 打包
进入elasticsearch-analysis-ik-master/ 下,打包。注意:打包后的文件在elasticsearch-analysis-ik-master/target/
目录下
mvn clean package
4.然后在elasticsearch-2.2.0/plugins
下创建目录 ik
cd elasticsearch-2.2.0/plugins
mkdir ik
cd ik
然后将打包后的elasticsearch-analysis-ik-1.8.0.jar
放入当前目录下,然后解压。
5、设置(2.0以上可以不设置,我没有设置)。
在 Elasticsearch 的config
下的elasticsearch.yml
文件中,添加如下代码。
index:
analysis:
analyzer:
ik:
alias: [ik_analyzer]
type: org.elasticsearch.index.analysis.IkAnalyzerProvider
ik_max_word:
type: ik
use_smart: false
ik_smart:
type: ik
use_smart: true
或者简单配置:
index.analysis.analyzer.ik.type : “ik”
6、启动测试。
http://123.88.88.88:9200/_analyze?analyzer=ik&pretty=true&text=sojson在线工具
结果为:
{
"tokens" : [ {
"token" : "sojson",
"start_offset" : 0,
"end_offset" : 6,
"type" : "ENGLISH",
"position" : 0
}, {
"token" : "在线",
"start_offset" : 6,
"end_offset" : 8,
"type" : "CN_WORD",
"position" : 1
}, {
"token" : "工具",
"start_offset" : 8,
"end_offset" : 10,
"type" : "CN_WORD",
"position" : 2
} ]
}
over了,当然我以前用的版本是0.9现在是2.0,跨度太大了,所以写这个Blog话费时间较多,中间可能有一点考虑不到的因素,如果你有疑问,可以联系我,或者加群找我,我有时间的情况下,可以和你探讨。