ES基本概念:索引、文档和REST API
文档(document)
ES是面向文档的,文档是数据的最小单位
- 日志文件的日志项
- 一条行记录
文档会被序列化为json格式,保存在ES中
- json对象由字段组成
- 每个字段有各自的类型(字符串、数值、日期、布尔、二进制、范围)
每个文档有一个unique ID
- 可以自己指定
- 也可以自动生成
文档元数据
元数据用于标注文档的相关信息
- _index - 文档所属的索引
- _type - 文档所属的类型名
- _id - 文档唯一ID
- _source - 文档的原始json数据
- _version - 文档的版本(用于做并发控制)
- _score - 相关性打分
索引
index - 索引是文档的集合
- index - 体现逻辑空间概念:每个索引都有自己mapping定义,用于定义文档的字段名和字段类型。
- shard - 体现物理空间概念:索引的数据分散在shard上。
索引的settings与mapping:
- settings定义不同的数据分布
- mapping定义文档字段类型
与MySQL类比
- MySQL Table Row Column Schema SQL
- ES index(type) Document Field Mapping DSL
区别:
- ES适用于全文搜索、结果算分
- MySQL适用于事务型、Join
REST API
# Click the Variables button, above, to create your own variables.
GET ${exampleVariable1} // _search
{
"query": {
"${exampleVariable2}": {} // match_all
}
}
GET _cat/nodes?v
//查看索引相关信息
GET kibana_sample_data_ecommerce
//查看索引的文档总数
GET kibana_sample_data_ecommerce/_count
//查看indices
GET _cat/indices/.kibana?v&s=index
//查看状态为绿的索引
GET _cat/indices?v&health=green
//按文档个数排序
GET _cat/indices?v&s=docs.count:asc