Elasticsearch批量操作
基本语法
##POST _bulk
##POST /<index_name>/_bulk
## {"action":{"metadata_key":"meta_value"}## action:create,updte,delete,index
## {"data"}
批量写入
批量写入节省堆内存,跟PUT写入原理不一样
要注意,必须写成如下格式
有点奇怪
POST _bulk
{"create":{"_id":"101","_index":"test_idx_aggs"}}
{"name":"test1","age":12}
批量get
GET test_index/_mget
{
"ids": [1,2,3,4,5]
}
GET test_index/_mget
{
"docs": [
{"_id": 1,
"_source":["ajmc"]
},
{
"_id": 2,
"_source":{
"include":["jsbax_sjjh2_xz_ryjbxx_cleaning"],
"exclude":["ajmc"]
}
}
]
}
支持的操作类型
op_type
有增删改查四种
DELETE,CREATE,UPDATE,INDEX
CREATE: 存在报错 不存在插入文章来源:https://www.toymoban.com/news/detail-525784.html
UPDATE:有则全量覆盖,无则插入文章来源地址https://www.toymoban.com/news/detail-525784.html
# 逻辑删除;即使数据不存在也会创建一个空的记录然后不断更新_version字段
DELETE test_index/_doc/10
GET test_index/_doc/10
# 先执行DELETE操作之后_version字段已经不是0了
PUT test_index/_doc/10
{
"name":"test"
}
# 可以指定操作类型,必须使用 index是创建或更新操作
POST test_index/_doc/10?op_type=index
{
"doc":{
"age":10,
"name":"test"
}
}
GET test_index/_doc/10
# 部分更新 全量替换 PUT indexname/_doc/docid
POST test_index/_doc/10/_update
{
"doc": {
"age": 10,
"name": "test"
}
}
GET test_index/_doc/10
批量删除
POST _bulk
{"delete":{"_id":"102","_index":"test_idx_aggs"}}
{"delete":{"_id":"103","_index":"test_idx_aggs"}}
## 支持不同op_type的批量比如同时增删改都可以的
到了这里,关于Elasticsearch批量操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!