本文介绍如何在 windows 10 ,64位操做系统上安装最新版本 Elasticsearch、以及相关插件。以前看了很多园友的文章,用到的版本都比较低,尤为是插件的版本要和ES的版本相对应等这些问题,介绍的不是很详细,干脆本身记录一下安装配置过程,也供他人参考。javascript
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并做为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。html
因为ES是Java语言开发的,因此这里须要先安装Java环境,jdk 下载地址是:java
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlnode
下载时,须要先注册Oracle帐号,注册后选择下载 Windows x 64 .exe 这个最新版本(目前是 2020年7月,版本是 jdk14 )git
双击 jdk-14_windows-x64-bin ,而后一直点击 “下一步” 按钮,直到安装完毕,默认的安装路径是 C:\Program Files\Java\jdk-14\ 按照默认路径安装便可github
接下来,须要配置Java环境变量,右击 “个人电脑” ——点击 “属性” ——点击 “高级系统设置”,以下图web
在新窗口的 “高级” 选项卡中,点击 “环境变量” ,再点击系统变量(S)里的 “新建” 按钮,弹出新窗口以下图所示npm
变量名填入: JAVA_HOME 变量值填入安装的路径: C:\Program Files\Java\jdk-14 windows
而后在系统变量(S)中,选中Path 这个变量,点击 “编辑” 按钮,打开编辑窗口,再点击 “新建” 按钮,输入 %JAVA_HOME%\bin 以下图所示浏览器
最后验证一下配置是否成功,打开 cmd 窗口(以管理员形式打开),输入命令 java -version 或者命令 javac 能够看安装是否成功,以下图
以上说明安装成功,java 版本是14
ES工具包下载地址是:http://www.elasticsearch.org/download/
咱们选择版本 7.8.0 window 这个版本,先在D盘建一个 ES 目录(方便管理),将下载的包解压到 ES 目录中,以下图所示
以管理员身份运行,打开cmd窗口,进入ES的bin目录: cd /d D:\ES\elasticsearch-7.8.0\bin
而后运行命令 elasticsearch.bat
稍等片刻,而后在浏览器中访问 http://localhost:9200/
以上说明 ES 相关包已经成功安装
安装 Head 插件的前提,是须要将 node、grunt 安装和配置完善。
一、首先下载 node.js
下载地址是 https://nodejs.org/en/download/
选择window 64位的版本 v12.18.1,一直点击 “下一步” 按钮,直到安装完毕,下载完成能够经过命令 node -v 查看安装版本以及是否成功,以下图
二、安装grunt
以管理员身份打开cmd命令窗口,执行 npm install -g grunt-cli 而后经过 grunt -version 看安装的版本
三、下载 Head
Head 相关文档 http://mobz.github.io/elasticsearch-head/
或者直接到 https://github.com/mobz/elasticsearch-head 下载 zip 包到本地。请注意,上面ES安装的版本是 v.7.8.0 ,这里 Head 插件也要选择 master 这个版本下载。
下载完,咱们将其解压到上面提到的D盘ES目录,跟ES放在同一级目录,方便管理,以下图所示
cmd 进入head 目录: cd /d D:\ES\elasticsearch-head-master
而后执行命令:npm install 以下图所示
上图执行过程卡住了,主要是缺乏 phantomjs-2.1.1-windows ,按照上边的提示,先下载这个文件,
而后放在目录 C:\Users\ADMINI~1\AppData\Local\Temp\phantomjs\phantomjs-2.1.1-windows.zip
顺便解压一下,再从新试一下执行 npm install ,此次执行成功了,见下图
而后执行 npm start ,启动 Head 插件,以下图所示
再访问 http://localhost:9100 能够看到下图效果
虽然Head已是安装成功,可是目前是未链接状态,上网查一下资料,须要作如下配置:
找到文件 D:\ES\elasticsearch-7.8.0\config\elasticsearch.yml 在该文件最后添加如下语句:
http.cors.enabled: true
http.cors.allow-origin: "*"
而后再重启ES,重启Head:
重启ES cd /d D:\ES\elasticsearch-7.8.0\bin\elasticsearch.bat
重启Head cd /d D:\ES\elasticsearch-head-master\npm start
再访问 http://localhost:9200/ 以及 http://localhost:9100/
这时能够看到,如今链接上了,灰色变成绿色,Head 安装成功。
总结一下,Head 插件安装比较麻烦,可是经过看报错信息以及网上资料文档,多多尝试,是能够解决的。
Kibana 插件是一个可视化的插件,非必须,若是须要安装也能够参考如下的流程
下载地址是 https://www.elastic.co/cn/downloads/kibana
注意,咱们 用的ES版本是 v7.8.0 , Kibana 安装的版本也是要和ES的同步,这里选择 Kibana版本为 7.8.0
一样,下载完毕后,咱们将其解压到 D:\ES\kibana-7.8.0
一样以管理员身份打开cmd 窗口执行命令
cd /d D:\ES\kibana-7.8.0\bin
kibana.bat
执行完,能正常打开 http://localhost:5601 即成功,Kibana 要怎么用,之后再来详细说明。
ES默认的分词器,对中文的分解不是很好,因此须要用到其它分词器,这里以IK分词器为例,介绍怎么安装。
首先往ES添加索引,用 postman 提交数据:
put http://localhost:9200/db_news/new/1
{ "title":"今日头条新闻", "author":"新华时报记者", "content":"今日券商股继续涨停" }
提交后能够看到返回结果
{ "_index": "db_news", "_type": "new", "_id": "1", "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 0, "_primary_term": 1 }
若是咱们用ES原生的分词器,例如
get http://localhost:9200/db_news/_analyze
{ "analyzer":"standard", "text":"我是中国人,我爱本身的祖国" }
分词结果是
{ "tokens": [ { "token": "我", "start_offset": 0, "end_offset": 1, "type": "<IDEOGRAPHIC>", "position": 0 }, { "token": "是", "start_offset": 1, "end_offset": 2, "type": "<IDEOGRAPHIC>", "position": 1 }, { "token": "中", "start_offset": 2, "end_offset": 3, "type": "<IDEOGRAPHIC>", "position": 2 }, { "token": "国", "start_offset": 3, "end_offset": 4, "type": "<IDEOGRAPHIC>", "position": 3 }, { "token": "人", "start_offset": 4, "end_offset": 5, "type": "<IDEOGRAPHIC>", "position": 4 }, { "token": "我", "start_offset": 6, "end_offset": 7, "type": "<IDEOGRAPHIC>", "position": 5 }, { "token": "爱", "start_offset": 7, "end_offset": 8, "type": "<IDEOGRAPHIC>", "position": 6 }, { "token": "自", "start_offset": 8, "end_offset": 9, "type": "<IDEOGRAPHIC>", "position": 7 }, { "token": "己", "start_offset": 9, "end_offset": 10, "type": "<IDEOGRAPHIC>", "position": 8 }, { "token": "的", "start_offset": 10, "end_offset": 11, "type": "<IDEOGRAPHIC>", "position": 9 }, { "token": "祖", "start_offset": 11, "end_offset": 12, "type": "<IDEOGRAPHIC>", "position": 10 }, { "token": "国", "start_offset": 12, "end_offset": 13, "type": "<IDEOGRAPHIC>", "position": 11 } ] }
显然,这样的分词毫无心义,这也是咱们要安装IK分词器的缘由。
IK分词器下载地址 https://github.com/medcl/elasticsearch-analysis-ik 一样用 7.8.0 版本
在 D:\ES\elasticsearch-7.8.0\plugins 新建 ik 文件夹,将以上下载的包解压到这里,以下图所示
而后重启 ES,再进行IK分词测试
Get http://localhost:9200/db_news/_analyze
{ "analyzer":"ik_smart", "text":"我是中国人,我爱本身的祖国" }
返回分词结果是
{ "tokens": [ { "token": "我", "start_offset": 0, "end_offset": 1, "type": "CN_CHAR", "position": 0 }, { "token": "是", "start_offset": 1, "end_offset": 2, "type": "CN_CHAR", "position": 1 }, { "token": "中国人", "start_offset": 2, "end_offset": 5, "type": "CN_WORD", "position": 2 }, { "token": "我", "start_offset": 6, "end_offset": 7, "type": "CN_CHAR", "position": 3 }, { "token": "爱", "start_offset": 7, "end_offset": 8, "type": "CN_CHAR", "position": 4 }, { "token": "本身", "start_offset": 8, "end_offset": 10, "type": "CN_WORD", "position": 5 }, { "token": "的", "start_offset": 10, "end_offset": 11, "type": "CN_CHAR", "position": 6 }, { "token": "祖国", "start_offset": 11, "end_offset": 13, "type": "CN_WORD", "position": 7 } ] }
能够看到,分词后是有意义的,至此,IK分词也安装成功,本文结束。
启动 ES cd /d D:\ES\elasticsearch-7.8.0\bin\elasticsearch.bat 访问 http://localhost:9200/
启动Head cd /d D:\ES\elasticsearch-head-master\npm start 访问 http://localhost:9100/
启动Kibana cd /d D:\ES\kibana-7.8.0\bin\kibana.bat 访问 http://localhost:5601
存在问题:以上我安装IK分词器后,直接重启ES,分词器立刻生效,若是我换其它分词器,是否是也是直接重启ES就能够了呢?还有,若是我原来就创建了索引库,更新分词器后,应该怎么处理原来的索引?知道的朋友能够评论一下。