前言
最近项目里为了加快后台系统的搜索速度,决定接入开源的搜索引擎,于是大家都在对比较常用的几个开源做技术调研,比如Lucene+盘龙分词
,Solr
,还有本篇要介绍的Elasticsearch
。话不多提,直接进入主题。
一、安装JDK
- 由于Elasticsearch v5.4.2需要Java 8或者更新版本的java,我们可以去Oracle官网下载,也可以选择使用OpenJDK。
- 设置Java环境变量
-
JAVA_HOME
=C:\Program Files (x86)\Java\jdk1.8.0_131
-
CLASSPATH
=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
-
PATH
= 原PATH+;%JAVA_HOME%\bin;
-
- 验证Java环境是否安装成功,以及环境变量是否设置正确。在
cmd
窗口执行javac
命令,若结果如下图,则说明Java环境已经安装正确。
二、安装Elasticsearch
- 下载。从官网下载Elasticsearch zip4.入2.zip 。
- 解压文件。将下载的zip文件解压到
C:\elasticsearch\elasticsearch-5.4.2/
,目录结构如下图:
- 启动Elasticsearch 。打开
cmd
窗口,进入C:\elasticsearch\elasticsearch-5.4.2\bin
,执行脚本elasticsearch.bat
,若结果如下图,则Elasticsearch 启动成功。
- 验证Elasticsearch是否安装成功。如上图,Elasticsearch 默认使用的是
9200
端口,接下来在浏览器中打开链接http://localhost:9200,返回如下结果则说明安装成功。
{
"name" : "KPIXVlC",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "uCSF389FQISmiuK3__BSHA",
"version" : {
"number" : "5.4.2",
"build_hash" : "929b078",
"build_date" : "2017-06-15T02:29:28.122Z",
"build_snapshot" : false,
"lucene_version" : "6.5.1"
},
"tagline" : "You Know, for Search"
}
三、安装Elasticsearch-Head
如下图,Elasticsearch Head在5.x版本中已经不再以插件的形式存在,而是作为了一个独立的web了。
- 安装
// 从GitHug下载Head
git clone git://github.com/mobz/elasticsearch-head.git
// 进入下载好的目录
cd elasticsearch-head
// 还原nmp包
npm install
// 运行
npm run start
- 验证。在浏览器中打开链接http://localhost:9100,如出现下图,则说明安装成功
四、安装ik分词器
git clone --branch v5.4.2 https://github.com/medcl/elasticsearch-analysis-ik.git
2. 打包。在下载好的文件夹中执行命令
mvn package
3. 解压。在Elasticsearch安装目录下的文件夹plugins中新建文件夹ik,将上一步中生成的elasticsearch-analysis-ik-5.4.2.zip
解压到这里,如下图:
- 检验ik安装结果。重启Elasticsearch,在Sense插件中输入如下内容
GET default-index/_analyze?analyzer=ik_smart&pretty=true
{
"text":"我的家乡是武汉,我爱美丽的江城"
}
如安装正常,结果如下
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "家乡",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 1
},
{
"token": "武汉",
"start_offset": 5,
"end_offset": 7,
"type": "CN_WORD",
"position": 2
},
{
"token": "我",
"start_offset": 8,
"end_offset": 9,
"type": "CN_CHAR",
"position": 3
},
{
"token": "爱美丽",
"start_offset": 9,
"end_offset": 12,
"type": "CN_WORD",
"position": 4
},
{
"token": "江城",
"start_offset": 13,
"end_offset": 15,
"type": "CN_WORD",
"position": 5
}
]
}
到此Elasticsearch,Elasticsearch Head, ik分词器都已经安装成功。
注意:安装ik分词器过程中发现与老版本2.x.x有两点不同:
- 不需要修改Elasticsearch配置文件。Elasticsearch的配置文件路径为
elasticsearch.yml
,在文件最后加入如下内容:index.analysis.analyzer.ik.type : "ik"
- 测试ik分词是否安装成功时,使用的是
ik_smart
而不是ik
。查看文档,现在支持ik_smart
与ik_max_word
。