ELasticSearch——ElasticScarch 概述及安装(v7.8)

「这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战

1、Elastic Stack 简介

早期 Elastic Stack 名为 ELK,对应Elasticsearch,Logstash 和 Kibana这三个开源软件,但由于在做日志收集时Logstash过于重量级,因此官方又开发了各种Beat组件,比如FileBeat,PackBeat等等。随着这些角色的加入ELK更名位Elastic Stack。

Elastic Stack 能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。

官网地址:www.elastic.co/cn/

官方文档:www.elastic.co/guide/index…

在这里插入图片描述

2、ElasticSearch 概述

2.1、Lucene 简介

Lucene是Apache软件基金会 Jakarta项目组的一个子项目,提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。但 Lucene只是一个提供全文搜索功能类库的核心工具包,而真正使用它还需要一个完善的服务框架搭建起来进行应用。

人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆。

Lucene是一个全文检索引擎的架构。那什么是全文搜索引擎?

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

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

2.2、ElasticSearch 概述

ElasticSearch 是什么

Elasticsearch(简称ES)是一个基于Apache Lucene的搜索服务器,是一个分布式、高扩展、高实时、Restful 风格的全文搜索和数据分析引擎。Elasticsearch是用Java语言开发的,这使Elasticsearch能够在不同的平台上运行,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

ElasticSearch 官网:www.elastic.co/cn/elastics…

ElasticSearch 特性

Elasticsearch的一般特性如下 :

  • Elasticsearch可扩展高达PB级的结构化和非结构化数据。
  • Elasticsearch可以用来替代MongoDB和RavenDB等做文档存储。
  • Elasticsearch使用非标准化来提高搜索性能。
  • Elasticsearch是受欢迎的企业搜索引擎之一,目前被许多大型组织使用,如Wikipedia,The Guardian,StackOverflow,GitHub等。
  • Elasticsearch是开放源代码,可在Apache许可证版本2.0下提供。

参考链接:www.bootwiki/elasticsear…

2.3、ElasticSearch 和 Solr 的对比及选型

Solr 概述

Solr是Apache下的一个顶级开源项目,采用ava开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用POST方法向Solr服务器发送一个描述Field及其内容的XML文档,Solr根据xml文档添加、删除、更新索引。Solr搜索只需要发送HTTPGET请求,然后对Solr返回Xml.,json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

Solr是基于lucene开发企业级搜索服务器,实际上就是封装了lucene。

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的文件,生成索引;也可以通过提出查找请求,并得到返回结果。

ElasticSearch 和 Solr 的对比

当单纯的对已有数据进行索引时,Solr更快

当实时建立索引时,Solr会产生io阻塞,查询性能较差,Elasticsearch具有明显的优势。

随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化。

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

Google搜索趋势结果表明,与Solr 相比,Elasticsearch具有很大的吸引力,但这并不意味着Apache Solr已经死亡。虽然有些人可能不这么认为,但Solr仍然是最受欢迎的搜索引擎之一,拥有强大的社区和开源支持。

与Solr相比,Elasticsearch易于安装且非常轻巧。此外,你可以在几分钟内安装并运行Elasticsearch。但是,如果Elasticsearch管理不当,这种易于部署和使用可能会成为一个问题。基于JSON的配置很简单,但如果要为文件中的每个配置指定注释,那么它不适合您。总的来说,如果你的应用使用的是JSON,那么Elasticsearch是一个更好的选择。否则,请使用Solr,因为它的schema.xml和solrconfig.xml都有很好的文档记录。

Solr 拥有更大,更成熟的用户,开发者和贡献者社区。ES 虽拥有的规模较小但活跃的用户社区以及不断增长的贡献者社区。

Solr贡献者和提交者来自许多不同的组织,而Elasticsearch提交者来自单个公司。Solr更成熟,但ES增长迅速,更稳定。

Solr是一个非常有据可查的产品,具有清晰的示例和API用例场景。Elasticsearch 的文档组织良好,但它缺乏好的示例和清晰的配置说明。

ElasticSearch 和 Solr 的技术选型

有时很难找到明确的答案。无论您选择Solr还是Elasticsearch,首先需要了解正确的用例和未来需求。总结他们的每个属性。

由于易于使用,Elasticsearch在新开发者中更受欢迎。一个下载和一个命令就可以启动一切。

如果除了搜索文本之外还需要它来处理分析查询,Elasticsearch是更好的选择。

如果需要分布式索引,则需要选择Elasticsearch。对于需要良好可伸缩性和以及性能分布式环境,Elasticsearch是更好的选择。

Elasticsearch在开源日志管理用例中占据主导地位,许多组织在Elasticsearch中索引它们的日志以使其可搜索。

如果你喜欢监控和指标,那么请使用Elasticsearch,因为相对于Solr,Elasticsearch暴露了更多的关键指标。

3、ElasticSearch 下载安装(Windows)

1、进入官网ElasticSearch 官网:www.elastic.co/cn/elastics…

下载最新版本:进入官网后,选择操作系统,点击下载

在这里插入图片描述

下载历史版本:点击右侧的 View past releases,然后再选择自己想要的版本。

2、下载后解压安装包

解压后的文件目录如下图:

在这里插入图片描述

目录说明

  • bin:可执行文件的存放目录
  • config:配置文件的存放目录
    • log4j2.properties:日志配置文件
    • jvm.options:java 虚拟机配置文件
    • elasticsearch.yml:ES配置文件
  • jdk:存放适合当前Elasticsearch版本的jdk
  • lib:引用的相关库的存放目录,elasticsearch.jar本身也放于该目录。
  • logs:默认的日志存放目录。
  • modules:功能模块的存放目录
  • plugins:插件存放目录

3、启动 ElasticSearch

打开bin目录,双击elasticsearch.bat:

在这里插入图片描述

两个端口:

9300端口为Elasticsearch集群间组件的通信端口,9200端口为浏览器访问的http.协议RESTful端口。

访问请求:http://localhost:9200/,如果出现如下信息,说明ES启动成功!

在这里插入图片描述

上面显示了 ElasticSearch 的配置信息。

4、启动失败可能的原因

在这里插入图片描述

Guess you like

Origin juejin.im/post/7032086487202168862
Recommended