最近项目里为了加快后台系统的搜索速度,决定接入开源的搜索引擎,于是大家都在对比较常用的几个开源做技术调研,比如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环境已经安装正确。
![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是否安装成功。如上图,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安装成功]()
三、安装Elasticsearch-Head
如下图,Elasticsearch Head在5.x版本中已经不再以插件的形式存在,而是作为了一个独立的web了。
![1188602-20170714174249181-639712965.png]()
-
安装
// 从GitHug下载Headgit clone git://github.com/mobz/elasticsearch-head.git// 进入下载好的目录cd elasticsearch-head// 还原nmp包npm install// 运行npm run start
![1188602-20170714180316150-768133749.png]()
-
验证。在浏览器中打开链接http://localhost:9100,如出现下图,则说明安装成功
![1188602-20170714180332243-2119437959.png]()
四、安装ik分词器
-
下载。ik分词链接GitHub。由于ik分词器要求与Elasticsearch的版本高度匹配,所以我们需要下载相应的版本为5.4.2。
git clone --branch v5.4.2 https://github.com/medcl/elasticsearch-analysis-ik.git
![1188602-20170714203533806-298696312.png]()
-
打包。在下载好的文件夹中执行命令
mvn package
![1188602-20170714204801322-2131200985.png]()
-
解压。在Elasticsearch安装目录下的文件夹plugins中新建文件夹ik,将上一步中生成的elasticsearch-analysis-ik-5.4.2.zip解压到这里,如下图:
![1188602-20170714205321400-1699430393.png]()
-
检验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。
本文转自zsdnr 51CTO博客,原文链接:http://blog.51cto.com/12942149/1949769
,如需转载请自行联系原作者