文档 (Document)
-
ElasticSearch 是面向文档的,文档是所有可搜索数据的最小单位
- 日志文件中的日志项
- 一部电影的具体信息
- MP3播放器的一首歌
-
文档会被序列化JSON格式保存到 ElasticSearch中
- JSON 对象由字段组成
- 每个字段都有对象的字段类型(字符串,数值,布尔,日期,二进制,范围类型)
-
每个文档都有一个 Unique ID
- 你可以自己指定ID
- 或者通过 ElasticSearch 自动生成
-
一篇文中包含了一系列的字段,类似于数据库表中的一条记录
-
JSON文档,格式灵活,不需要预先定义格式
- 字段的类型可以指定或者通过 ElasticSearch 自动推算
- 支持数组 \ 支持嵌套
文档的元数据
{
"index": "movies",
"_type": "_doc",
"_id": "1",
"_score": "14.69302",
"_source": {
"year": 1995,
"@version": "1",
"genre" : [
"Adventure",
"Animation",
"Children",
"Comedy",
"Fantasy"
],
"id" : "1",
"title" : "Toy Story"
}
}
元数据, 用于标注文档的相关信息
_index
文档 所属的索引名_type
文档所属的类型名_id
文档唯一 的ID_source
文档的原始 Json 数据_all
整合所有字段内容到该字段 , 已经被废除_version
文档版本信息_scoure
相关性打分
索引
{
"movies" : {
"settings" : {
"creation_date" : "1552737458543",
"number_of_shards" : "2",
"number_of_replicas" : "0",
"uuid" : "Qnd71MrNQGdaeJ9oR0tfQ",
"version" : {
"created" : "6060299"
},
"provided_name" : "movies"
}
}
}
index - 索引
是 文档的容器, 是一类 文档的结合index
体现了逻辑空间的概念, 每个索引都有自己的Mapping
定义, 用于定义包含的文档的字段名和字段类型Shard
体现了 屋里空间的概念,索引中的数据分散在 Shard 上
- 索引的
Mapping
和Settings
Mapping
定义文档字段的类型Setting
自已不同的数据分布
索引的不同语义
- 名词: 一个 ElasticSearch 集群中, 可以创建很多个不同的索引
- 动词: 保存一个文档到ElasticSearch 的过程也叫索引 (
indexing
)- ES中 ,创建一个倒排索引的过程
Type
在 7.0 之前,一个index 可以设置多个 Types
在 6.0 开始 Type 已经被 Deprecated。 7.0 开始,一个索引只能创建一个 Type- “_doc”
做一个不恰当的类比
- 传统关系型数据库 和 ElasticSearch 的区别
- Elasticsearch - Shemaless / 相关性 / 高性能全文检索
- RDMS - 事务性 / JOIN
数据库 | ES |
---|---|
Table | Index(Type) |
Row | Document |
Column | Field |
Schema | Mapping |
SQL | DSL |
简单的API
// 查看索引相关信息
GET kibana_sample_data_ecommerce
// 查看索引的文档总数
GET kibana_sample_data_ecommerce/_count
// 查看状态为绿的索引
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,m