Elasticsearch基本概念
Index索引
- type类型
- document文档
Node节点
- Shard节点
文档(Document)
- Elasticsearch是面向文档的,文档是所有可搜索数据的最小单位
-
日志文件中的日志项
-
一本电影的具体信息/—张唱片的详细信息
-
MP3播放器里的一首歌/ 一篇PDF文档中的具体内容
-
- 文档会被序列化成JSON格式,保存在Elasticsearch中
-
JSON对象由字段组成
-
每个字段都有对应的字段类型(字符串/数值/布尔/日期/二进制/范围类型)
-
- 每个文档都有一个Unique ID
-
你可以自己指定ID或者通过Elasticsearch自动生成
-
JSON文档
- JSON文档,格式灵活,不需要预先定义格式
- 字段的类型可以指定或者通过elasticsearch自动推算
- 支持数组/支持嵌套
文档的元数据
元数据,用于标注文档的相关信息:
- _index -文档所属的索引名
- _type -文档所属的类型名
- _id -文档唯一Id
- _source:文档的原始Json数据
- _all:整合所有字段内容到该字段,已被废除
- _version :文档的版本信息
- _score :相关性打分
索引
- Index -索引是文档的容器,是一类文档的结合
- Index体现了逻辑空间的概念:每个索引都有 自己的Mapping定义,用于定义包含的文档 的字段名和字段类型
- Shard体现了物理空间的概念:索引中的数据 分散在Shard上
- 索引的 Mapping 与 Settings
- Mapping定义文档字段的类型
- Setting定义不同的数据分布
索引的不同语意
名词:
- 一个Elasticsearch集群中,可以 创建很多个不同的索引
动词:
- 保存一个文档到日asticsearch的 过程也叫索引(indexing)
- ES中,创建一个倒排索引的过程
名词:一个B树索引,一个倒排索引
抽象与类比
- 在7.0之前,一个Index可以设置多个Types
- 目前Type已经被Deprecated, 7.0开始,一个索引只能创建一个Type - "_doc”
- 传统关系型数据库和Elasticsearch的区别:
Elasticsearch- Schemaless / 相关性 /高性能全文检索
RDMS -事务性 / Join