ElasticSearch

索引、文档

文档 document
ES是面向文档,文档是可搜索的最小单元
文档会被序列化成 JSON 格式,保存在 es 中
每个文档有一个 unique id

JSON 文档
一篇文档包含一系列字段,类似数据库一条记录。
JSON 文档格式灵活,不需预先定义格式
支持数组/嵌套

文档的元数据,用于标注文档的相关信息
_index:文档所属的索引名
_type:文档所属的类型名
_id:文档的唯一 id
_source:文档的原始 json 数据
_version:文档的版本信息
_score:相关性打分

INDEX 索引:文档的容器,是一类文档的集合
每个 index 都有一个 MAPPING,用于定义包含的字段名和字段类型
Shard 体现了物理空间的概念,索引中的数据分散在 shard 上
Setting 定义不同的数据分布
“索引”作动词:将文档保存在 es 中(indexing)

7.0 开始,一个索引只能创建一个 _type = “_doc”

传统 RDBMS 类比 es

RDBMSES
TableIndex(type)
RowDocument
ColumnFiled
SchemaMapping
SQLDSL

ES-相关性-高性能全文检索
RDBMS-事务

节点、集群、分片、副本

分布式系统的可用性和扩展性

  • 高可用性:
    服务可用性:允许有节点停止服务
    数据可用性:部分节点丢失,不会丢失数据
  • 可扩展性:
    请求量提升/数据不断增长(将数据分布在所有节点上)

每个节点是一个 es 实例(实质是 java 进程),每个节点都有名字,每个节点会被分配一个 uid。

master node
节点启动后默认为 master-eligible node,m-e node 可以参加选举,成为 master 节点。
集群的每个节点都保存了集群的状态,只有 master 节点能修改集群的状态信息。

  • 集群状态(cluster state),维护了一个集群的必要信息
    所有节点的信息
    所有的索引和索引的 mapping、setting 等信息
    分片的路由信息
  • 任何节点都能修改信息,导致集群的数据不一致

节点的角色:

data node
可以保存数据的节点。负责保存分片数据。在数据扩展上起到了至关重要的作用。

coordinating node
负责接收 client 的请求,将请求分发到合适的 node,最终把结果汇集到一起.
。。。每个节点默认都是 coordinating node

hot & warm node
不同硬件配置的 data node,用来实现 hot & warm 架构,降低集群部署的成本

machine learning node
负责跑机器学习的 job,用来做异常检测

tribe node
一个 tribe node 连接若干个 es 集群,并且支持将这些集群当作一个集群来处理。

开发环境中一个 node 可以承担多种角色。
生产环境中,应该设置单一的角色的 node。

分片(primary shard & replica shard)
主切片:用于解决数据水平扩展的问题。通过主分片,可以将数据分布到集群内的所有节点上
副本:主分片的拷贝。副本越多,可以一定程度上提高读取的吞吐
在这里插入图片描述
集群的健康状态:主分片与副本是否正常分配

倒排索引

  • 正排索引:
    图书的目录:按页数的升序排序
    搜索引擎:文档 ID ->文档内容(单词)

  • 倒排索引:
    图书的目录:按内容标题的字典序升序排序
    搜索引擎:文档内容(单词前缀)->文档 ID

在这里插入图片描述
倒排索引的核心组成

  • 单词词典(Term Dictionary),记录所有文档的单词的单词->倒排列表的映射关系。
  • 倒排列表(Posting List),倒排索引项的列表
    倒排索引项(Posting):
    • 文档 id
    • 词频:该单词在该文档中的出现次数,用于相关性评分。
    • 位置(Position):单词在文档中分词的位置。用于语句搜索(phrase query)
    • 偏移(Offset):记录单词的开始结束位置,实现高亮显示

以下是“Elasticsearch”这个单词的倒排列表
在这里插入图片描述

ES 中的 JSON 文档中的每个字段都有倒排索引

ES 提供了丰富的 restful api,可以通过 http 的形式访问 es。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值