阮老师视频笔记
文档(Documen)
- Elasticsearch是面向文档的,文档时所有可搜索数据的最小单位
- 文档会被序列化成JSON格式,保存在Elasticsearch中
- JSON 对象由字段组成
- 每个字段都有对应的字段类型(字符串/数值/布尔/日期/二进制/范围类型)
- 每个文档都有一个Unique ID
- 可以自定义
- 或者Elasticsearch自动生成
文档的元数据
- _index:文档所属的索引名
- _type:文档所属的类型名
- _id:文档唯一id
- _source:文档的原始Json数据
- _all:整合所有字段的内容到该字段(已被废除)
- _version:文档的版本信息
- _score:相关性打分
索引
- index 索引是文档的容器,是一类概念的结合
- index 体现了逻辑空间的概念:每个索引都有自己的Mapping定义,用于包含的文档字段名和字段类型
- Shard 体现了物理空间的概念:索引中的数据分散在 Shard上
- 索引的Mapping与Setting
- Mapping 定义文档字段的类型
- Setting 定义不同的数据分布
索引的不同语境
- 名词:一个Elasticsearch集群中,可以创建很多不同的索引
- 动词:保存一个文档到Elasticsearch的过程也叫索引(indexing)
- ES中,创建一个倒排索引的过程
- 名词:一个B树索引,一个倒排索引
抽象与类比
RDBMS | Elasticsearch |
---|---|
Table | index |
Row | Doucment |
Column | Filed |
Schema | Mapping |
SQL | DSL |
基本API
// 查看索引相关信息
GET kibana_sample_data_ecommerce
// 查看索引的文档总数
GET kibana_sample_data_ecommerce/_count
// 查看文档前10条
POST kibana_sample_data_ecommerce/_search
{
}
// _cat indices API
// 查看indices
GET /_cat/indices/kibana*?v&s=index
// 查看状态为绿的索引
GET /_cat/indices?v&health=green
// 按照文档个数排序
GET /_cat/indices?v&s=docs.count:desc
// 查看具体的字段
GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs.count,mt
// 索引所占用的内存
GET /_cat/indices?v&h=i,tm&s=tm:desc
文档的CRUD
// ceate document,自动生成_id
POST users/_doc
{
"user":"Mike",
"post_date":"2019-04-15T14:12:12",
"message":"trying out Kibana"
}
返回结果:
{
"_index" : "users",
"_type" : "_doc",
"_id" : "C7tTL3IB7xUCe-bLXYph",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 0,
"_primary_term" : 1
}
// create document指定id,如果id已经存在,报错
POST users/_doc/1?op_type=create
{
"user":"Jack",
"post_date":"2019-04-15T14:12:12"
"message":"trying out Kibana"
}