ElasticSearch 安装与介绍
前言:前几天学习了 Lucene 后又学习了 ElasticSearch 学了之后有事耽搁了更新,ElasticSearch 是基于 Lucene 开发,想了解更多的可以看之前的博文 【Lucene】全文检索技术介绍
1.ElasticSearch 简介
1.1.Elastic
Elastic官网:https://www.elastic.co/cn/
Elastic有一条完整的产品线:Elasticsearch、Kibana、Logstash等,前面说的三个就是大家常说的ELK技术栈。
1.2.Elasticsearch
Elasticsearch官网:https://www.elastic.co/cn/products/elasticsearch
如上所述,Elasticsearch具备以下特点:
- 分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)
- Restful风格,一切API都遵循Rest原则,容易上手
- 近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。
1.3.ElasticSearch 对比 Solr
- Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;
- Solr 支持更多格式的数据,而 Elasticsearch 仅支持 json 文件格式;
- Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供;
- Solr 在传统搜索应用中表现好于 Elasticsearch ,但在处理实时搜索应用时效率明显低于 Elasticsearch
2.ElasticSearch 安装与启动
2.1.下载ES压缩包
ElasticSearch 分为 Linux 和 Window 版本,因为我们主要是学习 ElasticSearch Java 客户端的使用,所以我们选择安装较为简便 Window 版本,项目开发上线后,有专门的运维人员会给我们搞。
ElasticSearch 下载地址:https://www.elastic.co/cn/downloads/elasticsearch
下载完找个目录 解压下就好了,解压完目录是这样的
启动的话直接双击 bin 目录下面的 elasticsearch.bat
当出现一下信息时,就说明启动成功了,
127.0.01:9300 是 使用 API 操作的端口, TCP 服务的端口
127.0.01:9200 是 http 服务的端口
访问 127.0.0.1:9002 显示入下
我们要对 elasticsearch 进行管理是需要图形界面的,这里提供一个图形界面的管理工具 elasticsearch-head
注意:elasticsearch是使用 java 开发的,且本版本的 es 需要的 jdk版本要是1.8 以上,所以安装 elasticsearch 之前保证 JDK1.8 + 安装完毕,并正确的配置好 JDK 环境变量,否则启动 elasticsearch 失败。
2.2.安装ES的图形化界面插件
ElasticSearch不同于Solr自带图形化界面,我们可以通过安装ElasticSearch的head插件,完成图形化界面的效果,完成索引数据的查看。安装插件的方式有两种,在线安装和本地安装。本文档采用本地安装方式进行head插件的安装。elasticsearch-5-*以 上版本安装he ad需要安装node和grunt
1)下载插件:https://github.com/mobz/elasticsearch-head
2)将 elasticsearch-head-master 压缩包解压到任意目录,但要和 elasticsearch 的安装目录区别开
3 ) 下载nodejs : https://nodejs.org/en/download/
4)安装 nodejs,安装时 一路下一步下一步即可
安装完毕后,通过 cmd 控制台输入 :node -v 查看版本号
5)将 grunt 安装为全局命令,Grunt 是基于 Node.js 的项目构建工具
在 cmd 控制台中输入如下执行命令:
npm install -g grunt-cli
执行结果如下图:
6)进入 elasticsearch-head 目录启动 head,在命令提示符下输入命令:
npm install
grunt server
7)打开浏览器,输入 http://localhost:9100/ ,看到如下页面:
如果不能成功连接到 es 服务,需要修改 elasticsearch 的config 目录下的配置文件:config/elasticsearch.yml,增加两句命令:
http.cors.enabled: true
http.cors.allow-origin: "*"
允许跨域访问
然后重启 Elasticsearch 服务,再访问,点击连接。
这样服务就连接成功了