1.文档
ES是面向文档的,文档是所有可搜索数据的最小单位,即关系型数据库中的一条记录
比如日志文件中的日志项;
一本电影的基本信息、一张唱片的详细信息;
MP3播放器的一首歌、一篇PDF文档中的具体内容。
文档会被序列化成json格式,保持在es中,
json对象由字段组成,格式灵活,不需要预先定义格式,
支持数组、支持嵌套
字段类型包括:字符串、数值、布尔、日期、二进制、范围类型
字段类型可以自己指定,或者通过ES自动推算
每个文档都有一个unique ID
你可以自己指定ID,或者通过es自动生成。
文档的元数据
元数据用于标注文档的相关信息
_index 文档所属的索引名
_type 文档所属的类型名
_id 文档的唯一ID
_source 文档的原始JSON数据
_all 整合所有字段内容到该字段,7.0开始已经被废除
_version 文档的版本信息
_score 相关性打分
2.索引
index 索引是文档的容器,是一类文档的集合
index体现了逻辑空间的概念:每一个索引都有自己的mapping定义,用于定义包含的文档的字段名和字段类型
shard体现了物理空间的概念:索引中的数据分散在sharrd上
索引的mapping:定义文档字段的类型
索引的setting:定义不同的数据分布
索引的不同语意
索引(动词)文档到es的索引(名词)中
名词索引:是一个B树索引,一个倒排索引,一个es集群中可以创建很多不同的索引
动词索引:在es中是创建一个倒排索引的过程
7.0 之前一个index可以设置多个types
7.0开始,一个index只能创建一个type --_doc
3.RDBMS 与 ES 类比
传统关系型数据库注重 事务性/join
ES 是schemaless,注重相关性、高性能全文检索
RDBMS ES
table index(type)
row document
column filed
schema mapping
SQL DSL
4.一些基本的API
indices
# 创建index:
PUT movies
# 查看所有index
GET _cat/indices
# 查看索引相关信息
GET index_name
GET index/_mapping
GET index/_setting
# 查看索引的文档总数
GET index_name/_count
# 查看索引前10条文档
POST index_name/_search