您当前的位置: 首页 >  ar

程序员一灯

暂无认证

  • 2浏览

    0关注

    152博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ElasticSearch 简介

程序员一灯 发布时间:2021-12-23 10:30:27 ,浏览量:2

 

介绍

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。

ElasticSearch是一个基于Apache Lucene的搜索服务器。它由谢伊·巴农(Shay Banon)开发,于2010年出版。它现在由ElasticSearch公司维护。

注:Elastic需要关注的有:

1、Elastic的管理:安装部署、集群搭建等等

2、数据的可视化

3、数据的操作:通过命令以及通过接口API,接口API就是它支持的各个编程语言的接口API,开发人员更多关注与命令的操作和API的调用。

ElasticSearch的特点
  1. ElasticSearch最多可扩展到千兆字节的结构化和非结构化数据。
  2. ElasticSearch可以用来替代像MongoDB和RavenDB这样的文档存储。
  1. ElasticSearch使用反规范化来提高搜索性能。
  2. ElasticSearch(ElasticSearch)是流行的企业搜索引擎之一,目前正被维基百科、卫报、StackOverflow、GitHub等许多大组织使用。
  1. ElasticSearch是开源的,在Apache许可版本2.0下可用。

ElasticSearch关键概念
  • Node(节点):它指的是ElasticSearch的单个运行实例。单个物理和虚拟服务器可容纳多个节点,具体取决于其物理资源(如内存、存储和处理能力)的能力。
  • Cluster(集群):它是一个或多个节点组成的集合。集群为整个数据提供跨节点的索引和搜索功能。
  • Index(索引):包含一堆有相似结构的文档数据,比如可以有一个客户索引,商品分类索引,订单索引,索引有一个名称。一个index包含很多document,一个index就代表了一类类似的或者相同的Document。比如说建立一个商品索引,里面可能就存放了所有的商品数据。
  • Type/Mapping(类型/映射):它是共享同一索引中一组公共字段的文档集合。例如,索引包含社交网络应用程序的数据,然后可以有特定类型的用户简档数据、另一种类型的消息数据和另一种类型的评论数据。
  • Document(文档):它是以JSON格式定义的特定方式的字段集合。每个文档都属于一个类型,并驻留在一个索引中。每个文档都有一个唯一的标识符,称为UID。
  • Shard(分片):单台机器无法存储大量数据,ElasticSearch可以将一个索引中的数据切分为多个Shard,分布在多台服务器上存储。有了Shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。
  • Replicas(副本):服务器随时可能故障或宕机,此时Shard可能就会丢失,因此可以为每个Shard创建多个Replica副本。Replica可以在Shard故障时提供备用服务,保证数据不丢失,多个Replica还可以提升搜索操作的吞吐量和性能。

ElasticSearch的优势
  • ElasticSearch是在Java上开发的,这使得它在几乎每个平台上都是兼容的。
  • ElasticSearch是实时的,换句话说,一秒钟后添加的文档可以在这个引擎中搜索。
  • ElasticSearch是分布式的,这使得它易于在任何大组织中扩展和集成。
  • 通过使用ElasticSearch中的网关概念,创建完整备份很容易。
  • 与Apache Solr相比,在ElasticSearch中处理多用户非常容易。
  • ElasticSearch使用JSON对象作为响应,这使得用大量不同的编程语言调用ElasticSearch服务器成为可能。
  • ElasticSearch支持几乎所有文档类型,除了那些不支持文本呈现的。

ElasticSearch的缺点
  • ElasticSearch在处理请求和响应数据方面没有提供多语言支持(仅在JSON中可能),这与Apache Solr不同,Apache Solr中可能有CSV、XML和JSON格式。
  • ElasticSearch也有分裂的问题,但在极少数情况下。
ElasticSearch与关系数据库系统的比较

在ElasticSearch中,索引是类型的集合,正如数据库是关系数据库管理系统中表的集合一样。每个表都是行的集合,就像每个映射都是JSON对象ElasticSearch的集合一样。

ElasticSearch

RDBMS

Index

Database

Shard

Shard

Mapping

Table

Field

Field

JSON Object

Tuple(元组,单表一行数据)

关注
打赏
1645367472
查看更多评论
立即登录/注册

微信扫码登录

0.0354s