ElasticSearch架构原理

本文详细探讨了ElasticSearch的架构,包括分布式实时搜索和分析引擎的概述、存储结构(如倒排索引)、数据写入过程以及为何能实现快速搜索。此外,还简要介绍了ElasticSearch 6.5的安装过程和两个常用插件es-head与es-sql的安装方法。
摘要由CSDN通过智能技术生成

ElasticSearch

本文主要介绍了ElasticSearch的架构原理,存储模型,近实时搜索原理和常用插件es-head和es-sql的简单安装。

1 架构及原理

1.1 概述

Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎Apache Lucene™ 基础上的搜索引擎,它不仅包括了全文搜索功能,还可以进行以下工作:

  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索
  • 实时分析的分布式搜索引擎
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

Elasticsearch 可以布置成集群模式,它也是采用主从架构。master对外读写。建立索引的请求都先经过master,然后才会把集群索引信息同步到slave。

只有建立索引和类型需要经过 Master,数据的写入有一个简单的 Routing 规则,可以 Route 到集群中的任意节点,所以数据写入压力是分散在整个集群的。

Elasticsearch的数据结构

ES使用的是倒排索引。

  • 正排索引:文档id到单词的关联关系
  • 倒排索引:单词到文档id的关联关系

倒排索引(Inverted Index)是实现“单词-文档id矩阵”的一种具体存储形式,通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。

倒排索引示例:

Elasticsearch索引的精髓

一切设计都是为了提高搜索的性能

Elasticsearch的索引思路

将磁盘里的东西尽量搬进内存,减少磁盘随机读取次数(同时也利用磁盘顺序读特性),结合各种奇技淫巧的压缩算法,用及其苛刻的态度使用内存。

1.2 存储结构

Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档。

索引 Index
ES将数据存储于一个或多个索引中,索引是具有类似特性的文档的集合。
它是个逻辑命名空间,类似于数据库概念中的数据库。

类型 Type
类型是索引内部的逻辑分区(category/partition),然而其意义完全取决于用户需求。因此,一个索引内部可定义一个或多个类型(type)。
类似于数据库概念中的一张表。

文档 Document
文档是索引和搜索的原子单位,它是包含了一个或多个域(Field)的容器,基于JSON格式进行表示。文档由一个或多个域

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值