前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch基本概念及特点

Elasticsearch基本概念及特点

作者头像
create17
发布2019-03-15 15:44:41
1.3K0
发布2019-03-15 15:44:41
举报

本章节主要是对Elasticsearch系列的入门讲解篇,包括Elasticsearch是做什么的,有什么特点,优秀使用案例,还有和mysql等关系型数据库的对比等进行了一定的讲解。

一、简介

Lucene:简单来说,就是一个jar包,里面包含了封装好的各种建立倒排索引,以及进行搜索的代码,包含各种算法,我们用java开发的时候,引入lucene.jar就可以进行开发了。

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式的全文搜索引擎和数据分析引擎;能够实现全文检索;结构化检索;数据分析;对海量数据进行近实时的处理;安装使用方便;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。

二、ES国内外使用优秀案例

1) 2013年初,GitHub抛弃了Solr,采取ElasticSearch 来做PB级的搜索。 “GitHub使用ElasticSearch搜索20TB的数据,包括13亿文件和1300亿行代码”。

2)维基百科:启动以elasticsearch为基础的核心搜索架构。

3)SoundCloud:“SoundCloud使用ElasticSearch为1.8亿用户提供即时而精准的音乐搜索服务”。

4)百度:百度目前广泛使用ElasticSearch作为文本数据分析,采集百度所有服务器上的各类指标数据及用户自定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常或业务层面异常。目前覆盖百度内部20多个业务线(包括casio、云分析、网盟、预测、文库、直达号、钱包、风控等),单集群最大100台机器,200个ES节点,每天导入30TB+数据。

5) 淘宝等电商网站,新闻网站,OA办公系统等。

三、基本概念
1. 节点(Node)和集群(Cluster)

集群是一个或多个节点(服务器)的集合, 这些节点共同保存整个数据,并在所有节点上提供联合索引和搜索功能。一个集群由一个唯一集群ID确定,并指定一个集群名(默认为“elasticsearch”)。该集群名非常重要,因为节点可以通过这个集群名加入集群,一个节点只能是集群的一部分。

2. Index(索引)

索引(index)类似于关系型数据库里的“数据库”——它是我们存储和索引关联数据的地方。索引名称必须是全部小写,不能以下划线开头,不能包含逗号。

3. Type(类型)

在索引中,我们可以定义一个或多个类型。类型是索引的逻辑类别/分区,其语义完全由开发者决定。通常,为具有一组公共字段的文档定义类型。例如,假设开发者运行博客平台并将所有数据存储在一个索引中。在此索引中,我们可以为用户数据定义类型,为博客数据定义另一种类型,并为注释数据定义另一种类型。我们可以把索引理解成数据库文档中的表。

4. Document(文档)

文档是可索引信息的基本单元,以JSON表示。你可以用其来定义单个产品信息或是员工信息。我们可以把文档理解为数据库文档中的行列数据。在索引/类型中,您可以存储任意数量的文档。文档有几个共同不可缺的属性,分别为 _index, _type, _id, 针对特定一个或一类文档进行操作时,必须指定这些属性。

5. Mapping(映射)

模式映射(schema mapping,或简称映射)用于定义索引结构。Elasticsearch在映射中存储有关字段的信息。映射在文件中以JSON对象传送。

6. Field(字段)

ElasticSearch里的最小单元 相当于数据的某一列,类似于json里一个键。

7. Shards(分片)

当有大量的文档时,由于内存的限制、硬盘能力、处理能力不足、无法足够快地响应客户端请求等,一个节点可能不够。在这种情况下,数据可以分为较小的称为分片(shard)的部分(其中每个分片都是一个独立的Apache Lucene索引)。每个分片可以放在不同的服务器上,因此,数据可以在集群的节点中传播。

当你查询的索引分布在多个分片上时,Elasticsearch会把查询发送给每个相关的分片,并将结果合并在一起。此外,多个分片可以加快索引。

8. Replica(副本)

为了提高查询吞吐量或实现高可用性,可以使用分片副本。副本(replica)只是一个分片的精确复制,每个分片可以有零个或多个副本。换句话说,Elasticsearch可以有许多相同的分片,其中之一被自动选择去更改索引操作。这种特殊的分片称为主分片(primary shard),其余称为副本分片(replica shard)。在主分片丢失时,例如该分片数据所在服务器不可用,集群将副本提升为新的主分片。

四、关系型数据库和ElasticSearch中的对应关系

关系型数据库

Elasticsearch

数据库Database

索引Index,支持全文检索

表Table

类型Type

数据行Row

文档Document,但不需要固定结构,不同文档可以具有不同字段集合

数据列Column

字段Field

模式Schema

映射Mapping


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据实战演练 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、简介
  • 二、ES国内外使用优秀案例
  • 三、基本概念
    • 1. 节点(Node)和集群(Cluster)
      • 2. Index(索引)
        • 3. Type(类型)
          • 4. Document(文档)
            • 5. Mapping(映射)
              • 6. Field(字段)
                • 7. Shards(分片)
                  • 8. Replica(副本)
                  • 四、关系型数据库和ElasticSearch中的对应关系
                  相关产品与服务
                  Elasticsearch Service
                  腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档