ES 6 常用API

本文详细介绍了ES 6中的Cluster API和Document API,包括查看集群健康、索引,文档的增删改查,批量操作Bulk,以及检索、过滤、排序等核心功能。特别强调了Document API中的局部更新、批量更新、并发控制和版本管理,帮助读者掌握ES 6常用API的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Cluster API

1.1 查看集群健康
GET /_cat/health?v
1.2 查看索引
GET /_cat/indices?v

2. Document API

2.1 增

2.1.1 单个文档

Index
指定ID时,如果ID不存在则创建新文档;如果ID存在,则先删除旧文档再创建新文档,并自增版本号。

PUT {index}/{type}/{id}
{
  "field": "value",
  ...
}

# 自动生成ID,GUID 字符串。
POST {index}/{type}

# 指定routering参数,默认对ID进行Hash取模。
POST {index}/{type}?routing=xxx

Create
若ID已存在,则失败。

PUT {index}/{type}/{id}/_create

2.1.2 批量

见Bulk

2.2 删

所有更新操作,包括删除,会导致版本号增加。删除操作会被记录在.del文件,在检索返回前利用其对结果进行过滤。后台段合并操作时,会摒弃删除数据。
见:?refresh

2.2.1 单个删除

DELETE {index}/{type}/{id}

2.2.2 批量删除 delelte_by_query

根据查询条件删除,ES在删除前会创建快照,如果在执行删除期间文档发生改变导致内部版本不匹配,则不会删除该文档。

POST {index}/{type}/_delete_by_query
{
  "query": { 
    ...
  }
}

2.3 改

ES支持局部更新和整体更新,但由于文档是不可变的,更新都是先删除旧文档再重新索引新文档,并自增版本号。ES使用_version作为乐观锁,如果在更新期间,文档被其它线程修改,将会导致更新失败。在无关顺序的增量操作场景下,可以使用retry_on_conflict参数来控制重试次数。

2.3.1 单个修改

局部更新
将doc中的字段覆盖现有文档的现有字段

POST {index}/{type}/{id}/_update
{
  "doc":{
    field to update...
  }
}

结合script
脚本中,通过ctx前缀来访问_source、_index、_version等字段。source中可访问params中的变量,已使得ES可以复用脚本。

POST {index}/{type}/{id}/_update
{
  "script" :{
    "source" :"...",
    "params" : {
      param...
    }
  }
}

upsert
当文档不存在时,使用upserts中的字段创建新的文档。根据响应的result字段可得知created还是updated。

POST {index}/{type}/{id}/_update
{
   "script" : "ctx._source.views+=1",
   "upsert": {
       "views": 1
   }
}

2.3.2 批量修改 update_by_query

利用script对符合查询条件的文档进行更新,同delete_by_query,利用版本号进行并发控制。当遇到更新冲突时,会中断更新操作,但是并不会回滚已经被更新的文档。conflicts=proceed可以在发生冲突时,不打断更新进程。

POST {index}/{type}/_update_by_query
{
  "script": {
  ...
  },
  "query": {
  ...
  }
}

2.3 查

GET默认是实时操作,会触发一次刷新,将内存中的文档组合成段,使之可见。而Search是近实时,不会触发刷新,未刷新的数据不可见。
HAED 查看文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值