首页
视频
资源
登录
原
Elasticsearch 基本概念:索引、文档和REST API
5245
人阅读
2020/8/8 18:34
总访问:
2588794
评论:
0
收藏:
0
手机
分类:
云产品
![elasticsearch](https://img.tnblog.net/arcimg/hb/5f1adabe8df94fdb8331eb80e393c4a3.jpeg "elasticsearch") >#Elasticsearch 基本概念:索引、文档和REST API [TOC] <br/> 前言 ------------ tn>为了了解 **Elasticsearch** 如何构成,我们首先需要理解**索引(Index)**、**类型(Type)**、**文档(Document)**和**字段(Field)**四个基本的概念。 ![](https://img.tnblog.net/arcimg/hb/40c41cb06a6d4dae8142c625e2fa8080.png) tn>它们的关系大致如上图所示,**索引**包含一个或多个类型,类型可以认为是关系型数据库中的一个表,**类型**有一个或多个文档,**文档**中有一个和多个字段,**字段**又是以键值对构成对。 如果我们把 Elasticsearch 看作一个数据库的话,也可以这样理解: | 数据库中 | Elasticsearch中 | | ------------ | ------------ | | Table | Index(Type) | | Row | Document | | Column | Filed | | Schema | Mapping | | Sql | Dsl | tn>Elasticsearch 与传统数据库的区别在于以下两点 - Elasticsearch - Schemaless / 相关性 / 高性能全文检索 - 传统数据库 事务性 / Join 文档(Document) ------------ >- Elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位 - 日志文件中的日志项 - 一部电影的具体信息 / 一张唱片的详细信息 - mp3 播放器里的一首歌 / 一篇 PDF 文档中的具体内容 >- 文档会被序列化成 JSON 格式,保存在 Elasticsearch 中 - JSON 对象由字段组成 - 每个字段都有对应的字段类型(字符串 / 数值 / 布尔 / 日期 / 二进制 / 范围类型) >- 每个文档都有一个 Unique ID - 你可以自己指定 ID - 或者通过 Elasticsearch 自动生成 <br/> >###JSON 文档 <br/> >- 一篇文档包含了一系列的字段。类似数据库表中一条记录。 >- JSON 文档,格式灵活,不需要预先定义格式。 - 字段的类型可以指定或者通过 Elasticsearch 自动推算 - 支持数组 / 支持嵌套 <br/> 例如如下例子 ``` movieId,titile,genres 1,Toy Story (2020),Adventure|Animation|Children|Comedy|Fantasy ``` ![](https://img.tnblog.net/arcimg/hb/7f54b25b16ee4871944cf066e67377b3.png) <br/> >###文档元数据 <br/> tn>元数据,用于标注文档的相关信息 ![](https://img.tnblog.net/arcimg/hb/c2472fd09deb4071a697214caa856280.png) | 字段名 | 作用 | | ------------ | ------------ | | _index | 文档所属的索引名 | | _type | 文档所属的类型名 | | _id | 文档唯一ID | | _source | 文档的原始JSON数据 | | _all | 整合所有字段到该字段,已被废除 | | _version | 文档的版本信息 | | _score | 相关性打分 | 索引 ------------ ![](https://img.tnblog.net/arcimg/hb/fa059b864c354b289eb4ce1437806605.png) >- Index - 索引是文档的容器,是一类文档的结合 - Index 体现了逻辑空间的概念:每个索引都有自己的 **Mapping** 定义,用于定义包含的文档的字段名和字段类型 - Shard 体现了物理空间的概念:索引中的数据分散在 Shard 上 >- 索引的 Mapping 与 Settings - Mapping 定义文档字段的类型 - Setting 定义不同的数据类型 >###索引的不同语意 ![](https://img.tnblog.net/arcimg/hb/5ed5459470304e0c816fbd470f90e60d.png) tn>索引(动词)文档到 Elasticsearch 的索引(名词)中 <br/> >- 名词:一个 Elasticsearch 集群中,可以创建很多个不同的索引 - 动词:保存一个文档到 Elasticsearch 的过程也叫索引(indexing) - ES 中,创建一个倒排索引的过程 - 名词:一个B树索引,一个倒排序索引 Type版本特点 ------------ - 在 7.0 之前,一个 index 可以设置多个 Types - 6.0 开始,Type 已经被 Deprecated。7.0 开始,一个索引只能创建一个 Type - "_doc" Elasticsearch 中的 Result Api ------------ ![](https://img.tnblog.net/arcimg/hb/ca547412456245608c9c1b32788c6986.png) Kibana 对 Elasticsearch的索引与管理 ------------ >###查看索引管理 ![](https://img.tnblog.net/arcimg/hb/4a6cae780ead4381a80e0a4bbdfd6abd.png) ![](https://img.tnblog.net/arcimg/hb/9bdd92e47631435d807280be5d0d2752.png) >###通过 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 ``` tn>大家可以执行看看。 ![](https://img.tnblog.net/arcimg/hb/f51b8c6b8f1c4d58afbaa913db603690.png)
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}
尘叶心繁
这一世以无限游戏为使命!
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
.net后台框架
168篇
linux
17篇
linux中cve
1篇
windows中cve
0篇
资源分享
10篇
Win32
3篇
前端
28篇
传说中的c
4篇
Xamarin
9篇
docker
15篇
容器编排
101篇
grpc
4篇
Go
15篇
yaml模板
1篇
理论
2篇
更多
Sqlserver
4篇
云产品
39篇
git
3篇
Unity
1篇
考证
2篇
RabbitMq
23篇
Harbor
1篇
Ansible
8篇
Jenkins
17篇
Vue
1篇
Ids4
18篇
istio
1篇
架构
2篇
网络
7篇
windbg
4篇
AI
18篇
threejs
2篇
人物
1篇
嵌入式
2篇
python
13篇
HuggingFace
8篇
pytorch
9篇
opencv
6篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术