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 分片(倒排索引)
相关文章
|
前端开发 Java 关系型数据库
记录:Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl...解决方案【亲测有效】
记录:Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl...解决方案【亲测有效】
6669 0
|
12月前
|
Oracle Java 关系型数据库
2023年震撼!Java在TIOBE排行榜滑坡至历史最低!
自2023年6月起,Java在TIOBE编程语言排行榜中跌至历史最低的第4位,与C#的差距缩小至1.2%。Java受欢迎程度下降的主要原因是Oracle在Java 8后引入付费许可模式,导致用户流失。尽管如此,Java仍是一门成熟、稳定且跨平台的语言,拥有庞大的用户群和丰富的生态系统。Oracle通过推出Java 17免费版及Java 21的新特性,努力保持其竞争力。未来,Java将继续与其他编程语言竞争并发展。
316 1
|
存储 Kubernetes Docker
docker-compose转化为pod配置文件
docker-compose转化为pod配置文件
|
SQL 存储 分布式计算
Hive和Pig的区别是什么?如何选择?
【10月更文挑战第9天】Hive和Pig的区别是什么?如何选择?
334 0
|
C语言 Perl
西门子S7-1200编程实例,电动机起保停控制梯形图如何编写?
本篇我们通过一个电动机起保停控制的实例,介绍S7-1200的使用方法,按下瞬时启动按钮I0.6,电动机Q0.0启动,按下瞬时停止按钮I0.7,电动机Q0.0停止。
西门子S7-1200编程实例,电动机起保停控制梯形图如何编写?
|
Web App开发 前端开发 JavaScript
浏览器之性能指标-TBT
浏览器之性能指标-TBT
569 0
阿里云CN域名注册价格、续费、转入和赎回费用表2023更新
2023年阿里云CN域名注册价格、续费、转入和赎回费用表,阿里云cn域名价格表,新用户注册cn域名首年8.8元,CN域名续费39元,使用优惠口令续费35元一年,新用户可以领取阿里云cn域名注册26.2元代金券,老用户注册cn域名可以使用优惠口令。阿里云百科分享CN域名注册价格、cn域名续费一年费用、cn域名优惠口令和cn域名代金券免费领取:
2290 0
阿里云CN域名注册价格、续费、转入和赎回费用表2023更新
|
安全 物联网 Linux
QNX、Linux、Android、wince各有什么优劣?
QNX、Linux、Android、wince各有什么优劣?
QNX、Linux、Android、wince各有什么优劣?
|
机器学习/深度学习 人工智能 JavaScript
中山大学HCP Lab团队:AI解题新突破,神经网络推开数学推理大门(三)
中山大学HCP Lab团队:AI解题新突破,神经网络推开数学推理大门
611 0
|
存储 安全 数据安全/隐私保护
关于我用无影玩游戏这件事
用无影玩游戏多是一件‘’美事‘’
9625 1
关于我用无影玩游戏这件事