一、简单的集群健康状况查询
es提供了一套api,叫做cat api,在上一节中dev tools中的控制台中输入,可以查看es中各种各样的数据
- 快速检查集群的健康状况:GET /_cat/health?v
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1558192208 23:10:08 elasticsearch yellow 1 1 6 6 0 0 6 0 - 50.0%
status属性代表健康状况:
- green:每个索引的primary shard和replica shard都是active状态的
- yellow:每个索引的primary shard都是active状态的,但是部分replica shard不是active状态,处于不可用的状态
- red:不是所有索引的primary shard都是active状态的,部分索引有数据丢失了
- 快速查看集群中有哪些索引:GET /_cat/indices?v
- 增加索引:PUT /test_index?pretty(test_index为自己定义的索引名)
- 删除索引:DELETE /test_index?pretty
二、简单案例演示文档的CRUD操作
- 新增商品:新增文档,建立索引
格式:
PUT /index/type/id
{
"json数据"
}
例:
PUT /shop/product/1
{
"name":"lanqiu",
"desc":"wan de lan qiu",
"price":"30",
"tags":["play","test"]
}
ElasticSearch会自动建立index和type,不需要提前创建,而且es默认会对document每个field都建立倒排索引,让其可以被搜索。
- 新增商品:检索文档
格式:GET /index/type/id
例: GET /shop/product/1
结果:{
"_index": "shop",
"_type": "product",
"_id": "1",
"_version": 1,
"found": true,
"_source": {
"name": "lanqiu",
"desc": "wan de lan qiu",
"price": "30",
"tags": [
"play",
"test"
]
}
}
- 修改商品:替换文档
- 方式一:
与新增一样:
PUT /index/type/id
{
"json数据"
}
但是此时必须每个field都带上(不论修不修改),否则没带上的字段会丢失
- 方式二:
格式 :
POST /index/type/id/_update
{
"doc":{
"field":"value"
}
}
例:
POST /shop/product/1/_update
{
"doc":{
"name":"zuqiu"
}
}
- 删除商品
格式:
DELETE /index/type/id
例:
DELETE /shop/product/1
返回结果:
{
"found": true,
"_index": "shop",
"_type": "product",
"_id": "1",
"_version": 2,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
}
}
参考资料:中华石杉