目录
文档(Document)
Elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位
日志文件中的日志项
一本电影的具体信息 / 一张唱片的详细信息
MP3播放器里的一首歌 / 一篇 PDF 文档中的具体内容
文档会被序列化成JSON格式,保存在Elasticsearch中
JSON对象由字段组成
每个字段都有对应的字段类型(字符串/数值/布尔/日期/二进制/范围类型)
每一个文档都有一个Unique ID
你可以自己指定ID
或者通过Elasticsearch自动生成
JSON文档
一篇文档包含了一系列的字段。类似数据库表中一条记录
JSON文档,格式灵活,不需要预先定义格式
字段的类型可以指定或者通过Elasticsearch自动推算
支持数组/支持嵌套
movieId,title,genres
1,Toy Story (1995),Adventure|Animation|Children|Comedy|Fantasy
CSV file 转换 JSON
{
“year” : 1995,
“@version”: “1”,
“genre” : [
“Adventure”,”Animation”,”Children”,”Comedy”,”Fanasy”],
“id”:”1”,
“title”: “Toy Story”
}
文档的元数据
元数据,用于标注文档的相关信息
_index – 文档所属的索引名
_type - 文档所属的类型名
_id – 文档唯一id
_source: 文档的原始Json数据
_all : 整合所有字段内容到该字段,已被废除
_score: 相关性打分
索引
{
"movies" : {
"settings" : {
"index" : {
"creation_date" : "1567998792669",
"number_of_shards" : "1",
"number_of_replicas" : "1",
"uuid" : "2aDN9qjYQ5WjPqf3MiW0Lw",
"version" : {
"created" : "7030199"
},
"provided_name" : "movies"
}
}
}
}
Index – 索引是文档的容器,是一类文档的集合
Index 体现了逻辑空间的概念:每个索引都有自己的Mapping 定义,用于定义包含的文档的字段名和字段类型
Shard体现了物理空间的概念:索引中的数据分散在 Shard 上
索引的Mapping 与 Settings
Mapping 定义文档字段的类型
Setting 定义不同的数据分布
索引的不同语意
名词:一个Elasticsearch集群中,可以创建很多个不同的索引
动词:保存一个文档到Elasticsearch的过程也叫索引(indexing)
ES中,创建一个倒排索引的过程
名词:一个B树索引,一个倒排索引
抽象与类比
RDBMS | Elasticsearch |
---|---|
Table | Index(Type) |
Row | Document |
Column | Field |
Schema | Mapping |
SQL | DSL |
- 在7.0之前,一个Index可以设置多个Types
- 目前Type已经被Deprecated,7.0开始使用,一个索引只能创建一个Type – “_doc”
- 传统关系型数据库和Elasticsearch的区别
Elasticsearch – Schemaless / 相关性 / 高性能全文检索
RDMS – 事务性 / Join
REST API
很容易被各种语言调用
API使用
查看索引相关信息
GET /kibana_sample_data_ecommerce
查看索引的文档总数
GET /kibana_sample_data_ecommerce/_count
{
"count" : 4675,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
}
}
查看文档前10条,了解文档格式
POST /kibana_sample_data_ecommerce/_search
查看indices
GET /_cat/indices/kibana*?v&s=index
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open kibana_sample_data_ecommerce qfjtoNdYRXyNE9I_1U26NA 1 0 4675 0 4.6mb 4.6mb
green open kibana_sample_data_flights u9u-xXpZSK2H0l7TNMT6dA 1 0 13059 0 6.4mb 6.4mb
green open kibana_sample_data_logs PJNZBh7oR5y0SPnuedT_Uw 1 0 14074 0 11.4mb 11.4mb
查看索引状态为绿的索引
GET /_cat/indices?v&health=green
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana_task_manager k9d_SEA4RsKSzOT2Ss0G-A 1 0 2 0 30.6kb 30.6kb
green open kibana_sample_data_ecommerce qfjtoNdYRXyNE9I_1U26NA 1 0 4675 0 4.6mb 4.6mb
green open kibana_sample_data_logs PJNZBh7oR5y0SPnuedT_Uw 1 0 14074 0 11.4mb 11.4mb
green open kibana_sample_data_flights u9u-xXpZSK2H0l7TNMT6dA 1 0 13059 0 6.4mb 6.4mb
green open .kibana_1 AYCJSfgoSwSDcg3lD1Xoog 1 0 152 1 1mb 1mb
按照文档个数排序
GET /_cat/indices?v&s=docs.count:desc
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open kibana_sample_data_logs PJNZBh7oR5y0SPnuedT_Uw 1 0 14074 0 11.4mb 11.4mb
green open kibana_sample_data_flights u9u-xXpZSK2H0l7TNMT6dA 1 0 13059 0 6.4mb 6.4mb
yellow open movies 2aDN9qjYQ5WjPqf3MiW0Lw 1 1 9743 0 1.2mb 1.2mb
green open kibana_sample_data_ecommerce qfjtoNdYRXyNE9I_1U26NA 1 0 4675 0 4.6mb 4.6mb
green open .kibana_1 AYCJSfgoSwSDcg3lD1Xoog 1 0 152 1 1mb 1mb
green open .kibana_task_manager k9d_SEA4RsKSzOT2Ss0G-A 1 0 2 0 30.6kb 30.6kb
查看具体字段
GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs.count,mt
health index pri rep docs.count mt pri.mt
green kibana_sample_data_ecommerce 1 0 4675 0 0
green kibana_sample_data_logs 1 0 14074 0 0
green kibana_sample_data_flights 1 0 13059 0 0
查看每个索引占用的内存
GET /_cat/indices?v&h=i,tm&s=tm:desc
i tm
kibana_sample_data_logs 84.9kb
kibana_sample_data_flights 81.8kb
kibana_sample_data_ecommerce 40.2kb
.kibana_1 22.3kb
movies 8.1kb
.kibana_task_manager 4.7kb