elastic search
2017年3月18日
安装&使用
环境
表 1 环境信息
Centos |
cat /etc/issue CentOS release 6.8 (Final) cat /proc/version Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013 |
JavaVersion |
"1.7.0_111" |
Elasticsearch |
1.7.4 |
lucene |
4.10.4 |
Ik(分词插件) |
1.4.1 |
安装组件
Es安装
从github上下载1.7版本tag(选择原因是1.7版本是经过无数人验证过的稳定版本)
wget https://codeload.github.com/elastic/elasticsearch/tar.gz/v1.7.5
解压之后进入目录执行
Mvn package –DskipTests
编译完毕之后会在target/realease 中生成编译好的压缩包,把这个压缩包解压放到任意目录安装就好了。
安装IK插件
ik是一个中文切词插件,elasticSearch自带的中文切词很不专业,ik对中文切词支持的比较好。
在https://github.com/medcl/elasticsearch-analysis-ik上找到我们elasticSearch对应的版本,1.7.5对应的ik版本是1.4.1,所以下载https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v1.4.1
解压出的目录是:
elasticsearch-analysis-ik-1.4.1
进入目录后执行
mvn clean package
编译完后依然是在target/releases生成了类似于elasticsearch-analysis-ik-*.zip的压缩包,把里面的内容解压到elasticsearch安装目录的plugins/ik下
再把elasticsearch-analysis-ik-1.4.1/config/ik目录整体拷贝到elasticsearch安装目录的config下
修改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
这样ik就安装好了。
分词器的配置
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
第一种方式,定义了三个 analyzer,分别为:ik、ik_max_word、ik_smart,其中 ik_max_word 和 ik_smart 是基于 ik 这个 analyzer 定义的,并各自明确设置了 use_smart 的不同值。
index.analysis.analyzer.ik.type : "ik"
第二种方式,只定义了一个名为 ik 的 analyzer,其 use_smart 采用默认值 false
其实,ik_max_word 等同于 ik。ik_max_word 会将文本做最细粒度的拆分,比如会将"*国歌"拆分为"*,中华人民,中华,华人,人民*,人民,人,民,*,共和,和,国国,国歌",会穷尽各种可能的组合;而 ik_smart 会做最粗粒度的拆分,比如会将"*国歌"拆分为"*,国歌"。
不过,如果你想将 /index_name/_analyze 这个 RESTful API 做为分词器用,用来提取某段文字中的主题词,则建议使用 ik_smart 这个 analyzer: