1.es的定义

ES是基于Lucene分布式搜索服务,可以存储整个对象或文档,分布式的实时文件存储,每个字段都被索引并可被搜索。

ES也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单

2.es的基本概念

​ 与传统数据库对比:

DB ES
数据库(Database) 索引(index)
表(Table) 类型(Type)(6.0.0版本舍弃)
行(Row) 文档(Document)
列(Column) 字段(Field)
表结构(Schema) 映射(Mapping)
索引 反向索引
SQL 查询 DSL
SELECT * ... GET http://
UPDATE table SET ... PUT http://
DELETE DELETE http://
2.1.节点(node)

运行了单个实例的ES主机称为节点,它是集群的一个成员,可以存储数据、参与集群索引及搜索操作。节点通过为其配置的ES集群名称确定其所要加入的集群。

2.2.集群(cluster)

ES可以作为一个独立的单个搜索服务器。不过,一般为了处理大型数据集,实现容错和高可用性,ES可以运行在许多互相合作的服务器上。这些服务器的集合称为集群。

2.3.分片(Shard)

ES的“分片(shard)”机制可将一个索引内部的数据分布地存储于多个节点,它通过**将一个索引切分为多个**底层物理的Lucene索引完成**索引数据的分割存储**功能,

这每一个物理的Lucene索引称为一个分片(shard)。

这样的好处是可以**把一个大的索引拆分成多个,分布到不同的节点上**。降低单服务器的压力,构成分布式搜索,**提高整体检索的效率(分片数的最优值与硬件参数和数

据量大小有关)。**分片的数量**只能在索引创建前指定,并且索引创建后不能更改。**

2.4.副本(Replica)

副本是一个分片的**精确复制**,每个分片可以有零个或多个副本。副本的作用一是**提高系统的容错性**,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是**

提高es的查询效率**,es会自动对搜索请求进行负载均衡。

3.ES的数据架构
3.1.索引(index)

ES将数据存储于一个或多个索引中,索引是具有类似特性的文档的集合。类比传统的关系型数据库领域来说,索引相当于SQL中的一个数据库。

3.2.类型(Type)

类型是索引内部的逻辑分区(category/partition),然而其意义完全取决于用户需求。因此,一个索引内部可定义一个或多个类型(type)。一般来说,类型就是为那些

拥有相同的域的文档做的预定义。类比传统的关系型数据库领域来说,类型相当于“表”。

3.3.文档(Document)

文档是Lucene索引和搜索的原子单位,它是包含了一个或多个域的容器,基于JSON格式进行表示。文档由一个或多个域组成,每个域拥有一个名字及一个或多个值,有多个

值的域通常称为“多值域”。每个文档可以存储不同的域集,但同一类型下的文档至应该有某种程度上的相似之处。相当于mysql表中的row。

3.4.映射(Mapping)

映射是定义文档及其包含的字段如何存储和索引的过程。

 posted on 2023-03-12 21:36  不要做咸鱼。  阅读(20)  评论(0编辑  收藏  举报