一、文档
1、Elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位
- 日志文件中的日志项
- 电影的具体信息/ 唱片的详细信息
- 播放器里的一首歌 / PDF 文档中的具体内容
2、文档会被序列化成JSON格式,保存在ES中
- Json 对象字段组成
- 每个字段都有对应的字段类型(字符串/ 数值 / 布尔 / 日期 / 二进制 / 范围类型)
3、每个文档都有一个Unique ID
可以用户指定ID
通过ES自动生成
4、JSON 文档
- 包含了一些列的字段。类似数据库表中一条记录
2)JSON 文档、格式灵活、不需要预定义格式
a: 字段的类型可以指定或者通过ES自动推算
b:支持数组 / 支持嵌套
c: CVS file => JSON
5、文档的元数据(用于标注文档的相关信息)
_index: 文档所属的索引名
_type: 文档所属的类型名
_id: 文档唯一ID
_source: 文档的原始JSON 数据
_all: 整合所有字段内容到该字段,已被废除
_version: 文档的版本信息
_score: 相关性打分
6、索引
1)Index 索引是文档的容器,是一类文档的结合
a: index体现了逻辑空间的概念。咩歌索引都有自己的Mapping 定义,用于定义包含的文档的字段名和字段类型
b: Shard 体现了物理空间的概念。索引中的数据分散在Shard上
2)索引的Mapping 与Settings
a: Mapping 定义文档字段的类型
b: Setting 定义不同的数据分布
- 所有的不同语意
a:名词 一个ES 集群中,可以创建很多个不同的索引
b:动词 保存意个文档到ES的过程页叫索引(indexing)
ES 中,创建一个倒排索引的过程
c:名词 一个B树索引,一个倒序索引
- 与关系型数据库对比
RDBMS | ES |
---|---|
Table | Index(Type) |
Row | Document |
Column | Filed |
Schema | Mapping |
SQL | DSL |
a: 在7.0 之前一个Index 可以设置多个Types
b:目前Type 已经被废除 Deprecated,7.0开始一个索引只能创建一个Type “_doc”
- 传统关系型数据库和ES的区别
ES -Schemaless / 相关性 / 高性能全文检索
RDMS - 事务性 / Join
- 一些基本的API
Indices
创建 index
PUT Movies
查看所有index
// 查看索引相关信息
GET kibana_sample_data_ecommerce
// 查看索引的文档总数
GET kibana_sample_data_ecommerce/_count
// 查看前10条文档,了解文档格式
POST kibana_sample_data_ecommerce/_search{json}
// _cat indices API
// 查看indices
GET /_cat/indices/kibana*?v&s=index
// 查看状态为绿的索引
GET /_cat/indices?v&health=green
// 按照文档个数排序
GET /_cat/indices?v&s=docs.counts:desc
// 查看具体的字段
GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs.count,mt
// How much memory is used per index?
GET /_cat/indices?v&h=i,t&s=tm:desc
- REST API 调用 流程图