(1)基本概念
Index 索引:含有相同属性的文档集合
Type 类型:索引可以定义一个或多个类型,文档必须属于一个类型
Document 文档:文档是可以被索引的基本数据单位
Field 字段 : 文档的属性
四者关系:索引相当于数据库,类型相当于库中的表,文档相当于表中一行,字段相当于表中某一列。又如 小说索引 -> 科幻类型 -> 三体 -> 第一章
QueryDSL : 查询语法
分片:每个索引都有多个分片,每个分片是一个 Luncene 索引
分片备份:拷贝一份分片就完成了分片的备份
分片好处:一个索引的数据量很大,那么存储和搜索都会有瓶颈,此时可以将索引分片来分担压力,分别也运行横向搜索和分布式
备份好处:主分片出现问题,可使用备份分片代替工作。备份的分片还可以提供搜索操作,分担主索引压力
ES默认创建索引时,创建5个分片,1个备份。分片数量只能创建索引时修改,备份数量可以创建后修改
(2)索引的 CRUD - 增查改删
①RestFul API 格式:
RestFul 形式是用四种请求方式 POST、GET、PUT、DELETE 来对应 CRUD 操作。
1.创建索引 Create
JSON 格式:
POST /accounts/Person/1
{
"name":"John",
"lastname":"Doe",
"job_description":"Just for test"
}
// accounts : 新建索引的名字
// person : 类型名
// 1 :文档的id -- 学过 lucene 应该知道 documnet 必须有唯一 id
// { } 中的内容是文档的各项字段 Field
使用 Kibana 执行上面语句 (Kibana安装:https://mp.youkuaiyun.com/postedit/85931474),返回结果
{
"_index": "account",
"_type": "person",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
},
"created": true
}
2.查询数据 - Read
按照 id 查询
按照某个字段查询 _search - 两种方式
url 指定:
Elastic DSL 查询语句 - 推荐,具体用法可从ElasticStack 官网找到
3.更改数据 - POST
_update
将要更改的字段放在 doc 中
更改完成后可以使用 get 来查看
4.删除 - DELETE
参考资料:
慕课网视频