ELASTIC SEARCH 安装

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 等同于 ikik_max_word 会将文本做最细粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,中华人民,中华,华人,人民共和国,人民,,,共和国,共和,,国国,国歌",会穷尽各种可能的组合;而 ik_smart 会做最粗粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,国歌"

不过,如果你想将 /index_name/_analyze 这个 RESTful API 做为分词器用,用来提取某段文字中的主题词,则建议使用 ik_smart 这个 analyzer

posted @ 2017-03-18 16:27  joqk  阅读(203)  评论(0编辑  收藏  举报