apache的es的原理_es的核心原理

零、部分关键词 背景 描述

Lucene(鲁C恩):Elasticsearch是一个基于Apache Lucene(TM)的分布式可扩展的实时搜索和分析引擎.

Elasticsearch 在 Lucene 的基础上进行封装,实现了分布式搜索引擎。

Lucene就是个文档库

集群:

node:节点,每台计算机是一个节点

shard:主分片,用来存放数据,多分片会对数据进行切割,id 1、3、4 在分片1上,2、3在分片2上。

replica:副本分片,用来对主分片进行数据copy,实现提高查询效率。

Index:在ES 中索引有三层含义

document: 文档

面向文档的数据库

实时分析的分布式搜索引擎,效率极高

可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据

反向索引又叫倒排索引,是根据文章内容中的关键字建立索引。

搜索引擎原理就是建立反向索引。

Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份。

一、ES的基础存储概念

关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns)

Elasticsearch(非关系型数据库) ⇒ 索引(index) ⇒ 文档 (document)⇒ 字段(Fields)

使用方式和原理不一样

比如:

修改操作 的原理是覆盖且自带版本控制,这种特性导致 要重新考量使用方式,就不是传统意义上的update的直接操作了

支持跨类型检索,反推就是 需要 关系型数据库支持跨表全文检索,关系型基本上是做不到的(排除sql server 的数据分析功能,当然 它有没有都不一定)

二、ES的分布式概念

image-1a9c95df-ae5e-47ef-819d-9a85cd603960.png

image-2ae1466f-9031-426e-af15-bcc44acaec64.png

以下是在主副分片和任何副本分片上面 成功新建,索引和删除文档所需要的步骤顺序:

1、客户端向 Node 1 发送新建、索引或者删除请求。

2、节点使用文档的 _id 确定文档属于分片 0 。请求会被转发到 Node 3,因为分片 0 的主分片目前被分配在Node 3 上。

3、Node 3 在主分片上面执行请求。如果成功了,它将请求并行转发到 Node 1 和 Node 2 的副本分片上。一旦所有的副本分片都报告成功, Node 3 将向协调节点报告成功,协调节点向客户端报告成功。

三、ES的索引概念

1、索引(名词):一个 索引 类似于传统关系数据库中的一个 数据库

2、索引(动词):索引一个文档 就是存储一个文档到一个 索引 (名词)中以便它可以被检索和查询到。这非常类似于 SQL 语句中的 INSERT 关键词,除了文档已存在时新文档会替换旧文档情况之外。

也许基于倒排索引原则,会给文档建立单独的内存索引,倒排索引主要处理 属性字段的分词

3、倒排索引:关系型数据库通过增加一个 索引 比如一个 B树(B-tree)索引 到指定的列上,以便提升数据检索速度。Elasticsearch 和 Lucene 使用了一个叫做 倒排索引 的结构来达到相同的目的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值