
Elasticsearch 基本概念:索引、文档和REST API
前言
为了了解 Elasticsearch 如何构成,我们首先需要理解索引(Index)、类型(Type)、文档(Document)和字段(Field)四个基本的概念。
它们的关系大致如上图所示,索引包含一个或多个类型,类型可以认为是关系型数据库中的一个表,类型有一个或多个文档,文档中有一个和多个字段,字段又是以键值对构成对。
如果我们把 Elasticsearch 看作一个数据库的话,也可以这样理解:
数据库中 | Elasticsearch中 |
---|---|
Table | Index(Type) |
Row | Document |
Column | Filed |
Schema | Mapping |
Sql | Dsl |
Elasticsearch 与传统数据库的区别在于以下两点
文档(Document)
- Elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位
- 日志文件中的日志项
- 一部电影的具体信息 / 一张唱片的详细信息
- mp3 播放器里的一首歌 / 一篇 PDF 文档中的具体内容
- 文档会被序列化成 JSON 格式,保存在 Elasticsearch 中
- JSON 对象由字段组成
- 每个字段都有对应的字段类型(字符串 / 数值 / 布尔 / 日期 / 二进制 / 范围类型)
- 每个文档都有一个 Unique ID
- 你可以自己指定 ID
- 或者通过 Elasticsearch 自动生成
JSON 文档
- 一篇文档包含了一系列的字段。类似数据库表中一条记录。
- JSON 文档,格式灵活,不需要预先定义格式。
- 字段的类型可以指定或者通过 Elasticsearch 自动推算
- 支持数组 / 支持嵌套
例如如下例子
movieId,titile,genres
1,Toy Story (2020),Adventure|Animation|Children|Comedy|Fantasy
文档元数据
元数据,用于标注文档的相关信息
字段名 | 作用 |
---|---|
_index | 文档所属的索引名 |
_type | 文档所属的类型名 |
_id | 文档唯一ID |
_source | 文档的原始JSON数据 |
_all | 整合所有字段到该字段,已被废除 |
_version | 文档的版本信息 |
_score | 相关性打分 |
索引
- Index - 索引是文档的容器,是一类文档的结合
- Index 体现了逻辑空间的概念:每个索引都有自己的 Mapping 定义,用于定义包含的文档的字段名和字段类型
- Shard 体现了物理空间的概念:索引中的数据分散在 Shard 上
- 索引的 Mapping 与 Settings
- Mapping 定义文档字段的类型
- Setting 定义不同的数据类型
索引的不同语意
索引(动词)文档到 Elasticsearch 的索引(名词)中
- 名词:一个 Elasticsearch 集群中,可以创建很多个不同的索引
- 动词:保存一个文档到 Elasticsearch 的过程也叫索引(indexing)
- ES 中,创建一个倒排索引的过程
- 名词:一个B树索引,一个倒排序索引
Type版本特点
- 在 7.0 之前,一个 index 可以设置多个 Types
- 6.0 开始,Type 已经被 Deprecated。7.0 开始,一个索引只能创建一个 Type - “_doc”
Elasticsearch 中的 Result Api
Kibana 对 Elasticsearch的索引与管理
查看索引管理
通过 Dev Tool 工具对索引的相关查询
//查看索引相关信息
GET kibana_sample_data_ecommerce
//查看索引的文档总数
GET kibana_sample_data_ecommerce/_count
//查看前10条文档,了解文档格式
POST kibana_sample_data_ecommerce/_search
{
}
//_cat indices API
//查看 indices
GET /_cat/indices/kibana*?v&s=index
//查看状态为绿的索引
GET /_cat/indices?v&health=green
//按照文档个数排序
GET /_cat/indices?v&s=docs.count:desc
//查看具体的字段
GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs.count,mt
大家可以执行看看。
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
657
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术