ES核心概念

简介: ES核心概念
  1. ES核心概念

ES是面向文档,下面表格是和关系型数据库的对比,一切都是JSON

关系数据库(Mysql)

ES

数据库(database)

索引(indices) 和数据库一样

表(tables)

types 慢慢会被弃用 7.0已经过时 8.0会彻底废弃

行(rows)

documents (数据)文档

字段(columns)

fields

ES中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型下又包含多个文档(行),每个文档中又包含多个字段(列)

物理设计:

ES在后台把每个索引划分成多个分片,没分分片可以在集群中的不同服务器间迁移

ES一个人就是一个集群,默认的集群名叫elasticsearch

网络异常,图片无法展示
|

逻辑设计:

一个索引类型中,包含多个文档

文档(表)

ES是面向文档的,那么就意味着索引和搜索数据的最小单位是文档,ES中,文档有几个重要属性:

1 自我包含 一篇文档同时包含字段和对应的值,也就是同时包含key:value
  2 可以是层次的,一个文档中包含自文档,复杂的逻辑实体就是这么来的(其实就是一个JSON对象 Java中可以通过fastjson或者jackson自动进行转换)
    3 灵活的结构,文档不依赖预先定义的模式,我们知道关系型数据库中,要提前定义字段才能用,在ES中,对于字段是非常灵活的,有时候,我们可以忽略该字段,或者动态的添加一个新字段

类型(字段属性类型 name varchar,name int之类的 )

类型是文档的逻辑容器,就像关系数据库一样,表格是行的容器,类型中对于字段的定义称为映射,在ES中,类型可以不定义设置,ES会去猜测数据类型,有可能出错,当然收到设置数据类型是最安全的

索引(数据库)

索引就是数据库,索引被分为5个分片,5个分片就是5个倒排索引,一个ES索引是由多个Lucenne库组成的
索引是映射类型的容器,ES中的索引是一个非常大的文档集合,索引存储了映射类型的字段和其他设置,然后他们被存储到了各个分支上,下面研究下分片是如何工作的

网络异常,图片无法展示
|

网络异常,图片无法展示
|

倒排索引

ES使用的是一种称为倒排索引的结构,采用Lucenne倒排索引作为底层,这种结构适用于快速的全文索引,一个索引由文档中所有不重复的列表构成,对于每一个词,都有一个包含它的文档列表

比如现在有两个文档

网络异常,图片无法展示
|

如果要搜索 to forever,由于文档1的权重(score )更高,所以优先考虑文档1,百度也是这样的机制

网络异常,图片无法展示
|

在看一个例子,倒排索引会过滤掉全部和查询无关的数据,效率更加高

网络异常,图片无法展示
|

总结其实就以下几个核心概念

1 索引
2 字段类型(mapping)
3 文档(documents)
4 分片(倒排索引)
相关文章
|
存储 JSON 安全
es学习笔记1-es概念
es学习笔记1-es概念
78 0
|
存储 JSON 自然语言处理
ES基础
ES基础
478 0
|
JSON JavaScript 前端开发
ES6特性总结
ES6特性总结
149 6
ES6特性总结
|
存储 JavaScript 前端开发
es6基础(1)
es6基础(1)
118 0
es6基础(1)
|
存储 API 开发者
ES 核心概念概述 | 学习笔记
快速学习 ES 核心概念概述
140 0
ES 核心概念概述 | 学习笔记
|
数据采集 搜索推荐 数据可视化
ES 工作原理|学习笔记
快速学习 ES 工作原理。
139 0
ES 工作原理|学习笔记
|
数据采集 存储 数据可视化
ES 工作原理 | 学习笔记
快速学习 ES 工作原理
118 0
ES 工作原理 | 学习笔记
|
数据库 索引
ES核心概念(第四更)
ES核心概念(第四更)
ES核心概念(第四更)
9、面向对象(ES5、ES6)
9、面向对象(ES5、ES6)
57 0