本文介绍如何在 windows 10 ,64位操作系统上安装最新版本 Elasticsearch、以及相关插件。之前看了不少园友的文章,用到的版本都比较低,尤其是插件的版本要和ES的版本相对应等这些问题,介绍的不是很详细,干脆自己记录一下安装配置过程,也供他人参考。

Elasticsearch简介

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

配置 java 环境

由于ES是Java语言开发的,所以这里需要先安装Java环境,jdk 下载地址是:

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载时,需要先注册Oracle账号,注册后选择下载 Windows x 64 .exe 这个最新版本(目前是 2020年7月,版本是 jdk14 )

双击 jdk-14_windows-x64-bin ,然后一直点击 “下一步” 按钮,直到安装完毕,默认的安装路径是  C:\Program Files\Java\jdk-14\   按照默认路径安装即可

接下来,需要配置Java环境变量,右击 “我的电脑”  ——点击 “属性” ——点击 “高级系统设置”,如下图

在新窗口的 “高级” 选项卡中,点击 “环境变量” ,再点击系统变量(S)里的 “新建” 按钮,弹出新窗口如下图所示

变量名填入: JAVA_HOME        变量值填入安装的路径: C:\Program Files\Java\jdk-14

然后在系统变量(S)中,选中Path 这个变量,点击 “编辑” 按钮,打开编辑窗口,再点击 “新建” 按钮,输入 %JAVA_HOME%\bin 如下图所示

最后验证一下配置是否成功,打开 cmd 窗口(以管理员形式打开),输入命令  java  -version  或者命令 javac 可以看安装是否成功,如下图

以上说明安装成功,java 版本是14

下载并安装 Elasticsearch

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插件

安装 Head 插件的前提,是需要将 node、grunt 安装和配置完善。

1、首先下载 node.js

下载地址是  https://nodejs.org/en/download/

选择window 64位的版本 v12.18.1,一直点击 “下一步” 按钮,直到安装完毕,下载完成可以通过命令  node  -v   查看安装版本以及是否成功,如下图

2、安装grunt 

以管理员身份打开cmd命令窗口,执行 npm install -g grunt-cli   然后通过  grunt -version  看安装的版本

3、下载 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

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 要怎么用,以后再来详细说明。

安装分词器 IK

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就可以了呢?还有,如果我原来就建立了索引库,更新分词器后,应该怎么处理原来的索引?知道的朋友可以评论一下。

Elasticsearch第一篇:在 Windows 上的环境搭建的更多相关文章

  1. Erlang在Windows上开发环境搭建全过程讲解目录

    我会按照下面的列表来一步一步讲解,在windows来开发Erlang所用到的一些工具,和知识.我会不停的添加和修正. Erlang运行时环境 Erlang开发工具选择 Rebar来构建,编译,测试,发 ...

  2. Python和Django在Windows上的环境搭建

    作为一个.NET程序员,真心不喜欢Python以及PHP这种松散的语法.有人说,程序员应该多学几门语言,本想学习Java,无奈感觉Java的语法太啰嗦了.很多人都推荐Python,说它的语法简洁,执行 ...

  3. ElasticSearch入门 第一篇:Windows下安装ElasticSearch

    这是ElasticSearch 2.4 版本系列的第一篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  4. OCM_第一天课程:OCM课程环境搭建

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  5. Redis在windows下的环境搭建

    Redis在windows下的环境搭建 下载windows版本redis,,官方下载地址:http://redis.io/download, 不过官方没有Windows版本,官网只提供linux版本的 ...

  6. 第一章 andriod studio 安装与环境搭建

    原文 http://blog.csdn.net/zhanghefu/article/details/9286123 第一章   andriod studio 安装与环境搭建 一.Android Stu ...

  7. Java 学习笔记 第一章:Java语言开发环境搭建

    第一章:Java语言开发环境搭建 第二章:常量.变量和数据类型 第三章:数据类型转换.运算符和方法入门 1.Java虚拟机——JVM JVM(Java Virtual Machine ):Java虚拟 ...

  8. 从零开始,在windows上用nodejs搭建一个静态文件服务器

    从零开始,在windows上用nodejs搭建一个静态文件服务器 首先安装nodejs: 新建一个node文件夹 下载node.exe到该文件夹 下载npm然后解压到该文件夹 现在node文件夹是这样 ...

  9. windows上使用mkdocs搭建静态博客

    windows上使用mkdocs搭建静态博客 之前尝试过用HEXO搭建静态博客,最近发现有个叫mkdocs的开源项目也是搭建静态博客的好选择,而且它支持markdown格式,下面简要介绍一下mkdoc ...

随机推荐

  1. 蜂鸟E203系列——Linux调试(GDB+Openocd)

    欲观原文,请君移步 本文基于文章<蜂鸟E203系列--利用 Hbrid-E-SDK 环境开发程序> GDB 简介 GDB(GNU Project Debugger),是 GNU 工具链中的 ...

  2. Docker、K8S网络工作原理

    一.Docker 网络模式 在讨论 Kubernetes 网络之前,让我们先来看一下 Docker 网络.Docker 采用插件化的网络模式,默认提供 bridge.host.none.overlay ...

  3. freeMarker随手笔记

    freemarker官网:http://docs.freemarker.cn/ 注意: 1.如果标签没有嵌套内容(在开始标签和结束标签之间的内容),那么可以只使用开始标签 (详情:http://fre ...

  4. 阿里面试官:这些软件测试面试题都答对了,I want you!

    [ 你悄悄来,请记得带走一丝云彩 ] 测试岗必知必会 01请描述如何划分缺陷与错误严重性和优先级别? 给软件缺陷与错误划分严重性和优先级的通用原则: 1. 表示软件缺陷所造成的危害和恶劣程度. 2. ...

  5. 011.Nginx防盗链

    一 盗链 1.1 盗链概述 盗链指的是在自己的界面展示非本服务器上的内容,通过技术手段获得其他服务器的资源.绕过他人资源展示页面,在自己页面向用户提供此内容,从而减轻自己服务器的负担,因为真实的空间和 ...

  6. Linux文件搜索

    一.whereis及which命令 这两个命令用来搜索命令的路径(也遵循/etc/updatedb.conf配置文件的筛选规则) whereis 命令名                        ...

  7. JVM系列之:Contend注解和false-sharing

    目录 简介 false-sharing的由来 怎么解决? 使用JOL分析 Contended在JDK9中的问题 padded和unpadded性能对比 Contended在JDK中的使用 总结 简介 ...

  8. django-rest-framework-源码解析002-序列化/请求模块/响应模块/异常处理模块/渲染模块/十大接口

    简介 当我们使用django-rest-framework框架时, 项目必定是前后端分离的, 那么前后端进行数据交互时, 常见的数据类型就是xml和json(现在主流的是json), 这里就需要我们d ...

  9. Qt子类化后qss设置背景色无效的问题

    1.问题背景 在某个类中,用到了一个组合的widget,有按钮进度条等,类似于视频播放器按钮控制区和精度条(参考了很多feiyangqingyun的文章,感谢),调试正常后整理代码,为了提高代码可读性 ...

  10. github提交报错

    github正确提交步骤 https://www.cnblogs.com/alex-415/p/6912294.html 可能的错误 提交前没有先pull,主要的原因是在创建repository的时候 ...