跳到主要内容

ES批量操作

mget

GET _mget
{
"docs": [
{
"_index": "product",
"_id": "6_O5n5UBPBZCwrPtl2eL"
},
{
"_index": "product",
"_id": "7PO5n5UBPBZCwrPtl2el"
}
]
}

GET product/_mget
{
"docs": [
{
"_id": "6_O5n5UBPBZCwrPtl2eL"
},
{
"_id": "7PO5n5UBPBZCwrPtl2el"
}
]
}

GET product/_mget
{
"ids": ["6_O5n5UBPBZCwrPtl2eL", "7PO5n5UBPBZCwrPtl2el"]
}

_source 参数可以指定要返回的字段。exclude 优先级高于include

GET product/_mget
{
"docs": [
{
"_id": "6_O5n5UBPBZCwrPtl2eL",
"_source": [
"name",
"price"
]
},
{
"_id": "7PO5n5UBPBZCwrPtl2el",
"_source": {
"exclude": [
"desc"
]
}
}
]
}

文档的四种操作类型

文档操作类型op_type

  • INDEX :若不存在则创建,存在则全量替换
  • CREATE :不存在则创建,存在则报错
  • UPDATE :部分更新
  • DELETE :删除文档
插入方法特点
PUT /{index}/_create/{id}严格创建新文档,id重复则失败,用于幂等
PUT /{index}/_doc/{id}?op_type=create同上
PUT /{index}/_doc/{id}若id存在则覆盖,否则创建
POST /{index}/_doc自动生成id,始终创建新文档
// 部分更新
POST /users/_update/1
{
"doc": {
"age": 30,
"status": "active"
}
}

// 全量替换
PUT /products/_doc/101
{
"name": "New Laptop",
"price": 1500,
"category": "electronics"
}

// index操作类型示例
PUT /test_index/_doc/1?op_type=index
{
"test_field": "test2"
}

_bulk

POST /_bulk
{ "操作类型" : { "_index" : "索引名", "_id" : "文档ID", ...其他元数据 } }
{ 操作数据(如文档内容) }

POST /{index}/_bulk
{ "操作类型" : { "_index" : "索引名", "_id" : "文档ID", ...其他元数据 } }
{ 操作数据(如文档内容) }

delete 没有操作数据

POST _bulk
{"index":{"_index":"product"}}
{"name":"极米 H6 4K 版","desc":"","price":4999,"lv":"中高端","type":"智能投影仪","create_time":"2024-10-15","tags":["极米","4K 投影","哈曼卡顿音响","智能系统"]}
{"create":{"_index":"product","_id":100}}
{"name":"坚果 J10S","desc":"","price":3999,"lv":"中低端","type":"智能投影仪","create_time":"2024-11-20","tags":["坚果","1080P 投影","丹拿调音","自动校正"]}
{"update":{"_index":"product","_id":100}}
{"doc":{"desc":"坚果 J10S 智能投影仪,与丹拿联合调音,音质表现卓越。"}}
{"delete":{"_index":"product","_id":100}}

// 只看失败的结果
POST _bulk?filter_path=items.*.error