Elasticsearch文档、索引和rest api
2020-07-26 本文已影响0人
ajajaj
本文来自极客时间《Elasticsearch核心技术实战》 课程学习笔记,感兴趣的同学可以订阅该课程
基本概念
文档
-
elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位
例如:
- 日志文件中的日志项
- 一部电影中的具体信息
- 一首歌/一个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通过es转为json
{
"year" : 1995,
"@version" : 1,
"genres" : [
"AdvenTure","Animation",
"Children","Comedy","Fantasy"
],
"id" : "1",
"title" : "Tony Story"
}
文档的元数据
{
"_index" : "movies",
"_type" : "_doc",
"_id" : "1",
"_score" : "14.626",
"_source" : {
"year" : 1995,
"@version" : 1,
"genres" : [
"AdvenTure","Animation",
"Children","Comedy","Fantasy"
],
"id" : "1",
"title" : "Tony Story"
}
}
- 元数据,用于标注文档的相关信息
- _index : 文档所属的索引名
- _type : 文档所属的类型名
- _id : 文档唯一ID
- _source : 文档的原始Json数据
- _all : 整合所有字段到该字段(已被废除)
- _version : 文档的版本信息
- _score : 相关性打分
索引
{
"movies" : {
"settings" : {
"index" : {
"create_date" : "15526261177",
"number_of_shards" : "2",
"number_of_replicas" : "0",
"uuid" : "",
"verison" : {
"created" : "302302"
},
"provided_name" : "movies"
}
}
}
}
- Index-索引是文档的容器,是一类文档的结合
- Index 体现了逻辑空间的概念:每个索引都有自己的Mapping定义,用于定义包含的文档的字段名和字段类型
- Shard提现了物理空间的概念:索引中的数据分散在shard上
- 索引的mapping 和Settings
- Mapping 定义文档字段的类型
- Setting 定义不同的数据分布
索引的不同语意
image-
一个Elasticsearch 集群中,可以创建很多个不同的索引
-
保存一个文档到Elasticsearch的过程也叫索引(indexing)
- es中,创建一个倒排索引的过程
-
一个B树索引,一个倒排索引
type
- 7.0之前,一个index可以设置多个types
- 7.0之后,一个索引只能创建一个Type-"_doc"
抽象和类比
RDBMS | Elasticsearch |
---|---|
Table | Index(Type) |
Row | Document |
Column | Field |
Schema | Mapping |
SQL | DSL |
1.7.0之前,一个index可以设置多个types
2.目前Type已经被Deprecated,7.0开始,一个索引只能创建一个Type-"_doc"
3.传统关系型数据库和Elasticsearch的区别
- Elasticsearch - Schemaless /相关性/高性能全文检索
- RDMS - 事务性/Join
Rest API-很容易被各种语言调用
image一些基本的API
- Indices
- 创建Index
- PUT movies
- 查看所有Index
- _cat/indices
- 创建Index
原文地址
[http://cbaj.gitee.io/blog/2020/07/26/Elasticsearch%E6%96%87%E6%A1%A3%E3%80%81%E7%B4%A2%E5%BC%95%E5%92%8Crest%20api/#more](http://cbaj.gitee.io/blog/2020/07/26/Elasticsearch文档、索引和rest api/#more)