一、文档

1、Elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位

  1. 日志文件中的日志项
  2. 电影的具体信息/ 唱片的详细信息
  3. 播放器里的一首歌 / PDF 文档中的具体内容

2、文档会被序列化成JSON格式,保存在ES中

  1. Json 对象字段组成
  2. 每个字段都有对应的字段类型(字符串/ 数值 / 布尔 / 日期 / 二进制 / 范围类型)

3、每个文档都有一个Unique ID

可以用户指定ID

通过ES自动生成

4、JSON 文档

  1. 包含了一些列的字段。类似数据库表中一条记录

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 定义不同的数据分布

  1. 所有的不同语意







文档

索引1

索引2

索引3

文档


a:名词 一个ES 集群中,可以创建很多个不同的索引

b:动词 保存意个文档到ES的过程页叫索引(indexing)
ES 中,创建一个倒排索引的过程

c:名词 一个B树索引,一个倒序索引

  1. 与关系型数据库对比

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”

  1. 传统关系型数据库和ES的区别

ES -Schemaless / 相关性 / 高性能全文检索

RDMS - 事务性 / Join

  1. 一些基本的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
  1. REST API 调用 流程图


rest api

rest api


Client Application

Http Request

ES

Http Response