elasticsearch的基本概念
cluster | 整个elasticsear----ch 默认就是集群状态,整个集群是一份完整、互备的数据。 |
node | 集群中的一个节点,一般只一个进程就是一个node |
Shard | 分片,即使是一个节点中的数据也会通过hash算法,分成多个片存放,默认是5片。 |
Index | 相当于rdbms的database, 对于用户来说是一个逻辑数据库,虽然物理上会被分多个shard存放,也可能存放在多个node中。 |
Type | 类似于rdbms的table,但是与其说像table,其实更像面向对象中的class , 同一Json的格式的数据集合。 |
Document | 类似于rdbms的 row、面向对象里的object |
Field | 相当于字段、属性 |
利用kibana学习 elasticsearch restful api (DSL)
1.es中保存的数据结构
public class Movie {
String id;
String name;
Double doubanScore;
List<Actor> actorList;
}
public class Actor{
String id;
String name;
}
这两个对象如果放在关系型数据库保存,会被拆成2张表,但是elasticsearch是用一个json来表示一个document。
所以它保存到es中应该是:
{
“id”:”1”,
“name”:”operation red sea”,
“doubanScore”:”8.5”,
“actorList”:[
{
“id”:”1”,”name”:”zhangyi”},
{
“id”:”2”,”name”:”haiqing”},
{
“id”:”3”,”name”:”zhanghanyu”}
]
}
2.对数据的操作
2.1 查看es中有哪些索引
GET /_cat/indices?v
es 中会默认存在一个名为.kibana的索引
表头的含义
health | green(集群完整) yellow(单点正常、集群不完整) red(单点不正常) |
status | 是否能使用 |
index | 索引名 |
uuid | 索引统一编号 |
pri | 主节点几个 |
rep | 从节点几个 |
docs.count | 文档数 |
docs.deleted | 文档被删了多少 |
store.size | 整体占空间大小 |
pri.store.size | 主节点占 |
2.2 增加一个索引
PUT /movie_index
2.3 删除一个索引
ES 是不删除也不修改任何数据 ,伪删除更新当前index的版本。
DELETE /movie_index
2.4 新增文档
格式 PUT /index/type/id
例:(如果之前没建过index或者type,es 会自动创建。)
PUT /movie_index/movie/1
{
"id":1,
"name":"operation red sea",
"doubanScore":8.5,
"actorList":[
{
"id":1,"name":"zhang yi"},
{
"id":2,"name":"hai qing"},
{
"id":3,"name":"zhang han yu"}
]
}
PUT /movie_index/movie/2
{
"id":2,
"name":"operation meigong river",
"doubanScore":8.0,
"actorList":[
{
"id":3,"name":"zhang han yu"}
]
}
PUT /movie_index/movie/3
{
"id":3,
"name":"incident red sea",
"doubanScore":5.0,
"actorList":[
{
"id":4,"name":"liu de hua"}
]
}
2.5 直接用id查找
GET movie_index/movie/1
2.6 修改—整体替换
和新增没有区别
PUT /movie_index/movie/3
{
"id":"3",
"name":"incident red sea",
"doubanScore":"5.0",
"actorList":[
{