ElasticSearch搜索引擎下载安装

目录

1、Solr&luncene介绍

1.1、Solr概述

1.2、Luncene概述

1.3、ElasticSearch和Solr的对比

2、ElasticSearch概述

2.1、什么是ElasticSearch?

2.2、ElasticSearch的使用案例

3、ElasticSearch的下载与安装

3.1、ElasticSearch的下载&安装

3.2、启动ElasticSearch

4、ElasticSearch的插件安装

4.1、安装依赖

4.2、安装淘宝镜像

4.3、Head插件

4.4、设置跨域

4.5、Kibana插件

4.6、Kibana汉化

4.7、可能遇到的问题及解决方式


1、Solr&luncene介绍

1.1、Solr概述

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
Solr是基于lucene开发企业级搜索服务器,实际上就是封装了lucene。
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的文件,生成索引;也可以通过提出查找请求,并得到返回结果。

1.2、Luncene概述

Lucene是Apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。(一套信息检索工具包)

Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提
供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆。Lucene是一个全文检索引擎的架构。那什么是全文搜索引擎?

全文搜索引擎是名副其实的搜索引擎,国外具代表性的有Google、Fast/AllTheWeb、AltaVista、
Inktomi、Teoma、WiseNut等,国内著名的有百度(Baidu)。它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎。

从搜索结果来源的角度,全文搜索引擎又可细分为两种,一种是拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的7家引擎;另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果,如Lycos引擎。

1.3、ElasticSearch和Solr的对比

1. ES基本是开箱即用,非常简单。Solr安装略微复杂一些。

2. Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能。

3. Solr 支持更多格式的数据,比如JSON、XML、CSV,而 Elasticsearch 仅支持json文件格式。

4. Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供,例如图形化界面需要kibana友好支撑。

5. Solr 查询快,但更新索引时慢(即插入删除慢),用于电商等查询多的应用;
    ES建立索引快(即查询慢),即实时性查询快,用于facebook新浪等搜索。
    Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。

6. Solr比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而 Elasticsearch相对开发维护者较少,更新太快,学习使用成本较高。

2、ElasticSearch概述

2.1、什么是ElasticSearch?

Elasticsearch简称为es,是一个开源的分布式、RestFul 风格的搜索和数据分析引擎,它的底层是开源库Apache Lucene。es其实就是一个搜索服务器,也就是我们所说的查询,那为什么不mysql数据库来查询呢?例:select * from user where name like %zhangsan%; 会全盘扫描,效率得不到保障。

MySQL和ElasticSearch的区别:

MySQL有事务性,而ElasticSearch没有事务的,所有你删除数据是无法恢复的
MySQL和ElasticSearch分工不同,MySQL负责存储数据。ElasticSearch负责搜索数据
MySQL把数据同步到ElasticSearch中,今后不是查询数据库了,而是从ElasticSearch中查询

ElasticSearch的特点: 

1、一个分布式的实时文档存储,每个字段可以被索引与搜索。
2、一个分布式实时分析搜索引擎。
3、能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据。
4、Elasticsearch 是文件存储,Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档。

2.2、ElasticSearch的使用案例

1、维基百科,类似百度百科,全文检索,高亮,搜索推荐

2、The Guardian(国外新闻网站),类似搜狐新闻,用户行为日志(点击,浏览,收藏,评论)+社交网络数据(对某某新闻的相关看法),数据分析,给到每篇新闻文章的作者,让他知道他的文章的公众反馈(好,坏,热门,垃圾,鄙视,崇拜)

3、Stack Overflflow(国外的程序异常讨论论坛),IT问题,程序的报错,提交上去,有人会跟你讨论和回答,全文检索,搜索相关问题和答案,程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应的答案。

4、GitHub(开源代码管理),搜索上千亿行代码。

5、电商网站,检索商品。

6、日志数据分析,logstash采集日志,ES进行复杂的数据分析,ELK技术,elasticsearch+logstash+kibana

7、商品价格监控网站,用户设定某商品的价格阈值,当低于该阈值的时候,发送通知消息给用户。

8、BI系统,商业智能,Business Intelligence。比如说有个大型商场集团,BI,分析一下某某区域最近3年的用户消费金额的趋势以及用户群体的组成构成,产出相关的数张报表,xx区,最近3年,每年消费金额呈现100%的增长,而且用户群体85%是高级白领,开一个新商场。ES执行数据分析和挖掘,Kibana进行数据可视化。

9、国内:站内搜索(电商,招聘,门户,等等),IT系统搜索(OA,CRM,ERP,等等),数据分析(ES热门的一个使用景)。

3、ElasticSearch的下载与安装

ElasticSearch是使用Java开发的,且版本的es需要的jdk版本要是1.8以上,所以安装ElasticSearch 之前保证JDK1.8+安装完毕,并正确的配置好JDK环境变量,否则启动ElasticSearch失败。

3.1、ElasticSearch的下载&安装

ElasticSearch分为Linux和Window版本,基于我们主要学习的是ElasticSearch的Java客户端的使用,所以我们课程中使用的是安装较为简便的Window版本,项目上线后,公司的运维人员会安装Linux版的ES供我们连接使用。

官网: Elasticsearch:官方分布式搜索和分析引擎 | Elastic

如果网速太慢的话,下面提供的是相关资料的百度网盘链接

链接:https://pan.baidu.com/s/1iAy2ODPoCjTEFUAzAeidiQ 
提取码:e6qg

ElasticSearch的安装非常方便,只需要将下载的jar包,解压即可!,注意:存放路径中不要有中文字符!

3.2、启动ElasticSearch

如果电脑内存不够大,当启动ElasticSearch时,默认占用电脑内存为1G,如果电脑内存不够大,我们需要修改【config】目录下的【jvm.options】配置文件,如果电脑内存比较大的话,8g以上内存就不需要修改了。

修改完后,进入bin目录,双击elasticsearch.bat

稍等一会,如果提示有started,即代表启动成功

访问localhost:9200页面

如果出现下面图片内容,就代表es安装成功了。

4、ElasticSearch的插件安装

操作es的辅助工具:
Postman工具  Head插件  Kibana插件  都对es提供了友好的图形化页面。

4.1、安装依赖

安装Node.js 主要是为了安装ES的图形化界面插件客户端,它们是依赖这些前端环境的!

Node.js下载地址: Download | Node.js

在上面的百度网盘也提供了有node.js的安装包。

Node.js的安装是非常简单的,只需要点击下一步即可,安装完后,打开cmd输入

node -v 

如果出现版本提示,则证明安装上了 

将grunt安装为全局命令 ,Grunt是基于Node.js的项目构建工具

-- 在cmd中输入以下进行安装 
npm install -g grunt-cli

-- 查看是否安装成功
grunt -version

 

4.2、安装淘宝镜像

紧接着我们会下载ES所需要的一些插件,那这些插件都是国外的,下载速度会比较慢,所以我们从国内的淘宝镜像中进行下载 ,速度会比较快!类似于Maven项目安装阿里云镜像(非必装,网络慢的可以安装)

--npm的远程服务器在国外,所以有时候难免出现访问过慢,甚至无法访问的情况。 
--使用阿里定制的cnpm命令行工具代替默认的npm
npm install -g cnpm --registry=https://registry.npm.taobao.org

输入以下代码验证是否安装成功

cnpm -v

如果出现以下提示,证明安装成功 

 

4.3、Head插件

Head插件是ES的图形化界面插件客户端,也是官方推荐使用的插件

下载地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster

百度网盘已提供,可自行选择

解压至es目录,与elasaticsearch同级放置 

注意一定要cmd进入到E:\es\elasticsearch-head-master目录下进行操作
安装命令: cnpm install     -- 已安装淘宝镜像使用cnpm
安装命令: npm install 

在Head解压目录中,出现node_modules目录说明安装成功

Head插件启动,注意:启动head一定要确保elasticsearch在运行中,因为head插件是依赖于elasticsearch的。

-- 注意一定要cmd进入到head目录下进行操作
命令:npm run start   或  grunt server 启动 

访问localhost:9100,会自动去请求9200端口,存在跨域问题,所以会连接不上。

由于ES进程和客户端进程端口号不同,存在跨域问题,我们要在ES的配置文件中配置下跨域问题

4.4、设置跨域

在es安装目录下的config目录下,打开elasticsearch.yml配置文件,在最后一行加入以下设置跨域配置

http.cors.enabled: true 
http.cors.allow-origin: "*"

设置之后,重新启动ES,再次访问Head

4.5、Kibana插件

Kibana可以将elasticsearch的数据通过友好的页面展示出来,提供实时分析的功能。

注意:电脑内存小的请谨慎安装,因为启动Kibana会特别占用内存,推荐8g以上内存,否则会出现卡死。

官方网址

https://www.elastic.co/cn/kibana/

百度网盘也提供的有,自行下载 ,如果官方下载,一定要确保与es的版本一致

无需要安装,只需要解压即可使用,由于文件比较大,解压需要一些时间!!!

进入到bin目录下双击【kibana.bat】,启动服务就可以了(需要等待启动完成),ELK基本上都是拆箱即用的。

  

访问localhost:5601,kibana会自动去访问9200,也就是elasticsearch的端口号(当然elasticsearch这个时候必须启动着),然后就可以使用kibana了。

4.6、Kibana汉化

我们看到首页是英文的,看起来比较吃力,这个插件主要是应用在大数据,有很多相关单词我们也不认识,所以我们配置为中文的!

找到config的kibana.yml配置文件,添加以下配置即可

i18n.locale: "zh-CN"

配置完成,重启服务,再次进入到首页

 

4.7、可能遇到的问题及解决方式

猜你喜欢

转载自blog.csdn.net/select_myname/article/details/128070661