一、批量查询mget
1. 基本用法
查询id是1、2的数据
# 批量查询
GET _mget
{
"docs":[
{
"_index":"indexname",
"_id":1
},
{
"_index":"indexname",
"_id":2
}
]
}
2. 提取index
# 也可以把索引提到上面
GET indexname/_mget
{
"docs":[
{
"_id":1
},
{
"_id":2
}
]
}
3. ids的用法
# 也可以通过ids直接查询id
GET indexname/_mget
{
"ids":[1,2]
}
4. 指定source
# 查询时,指定source
GET indexname/_mget
{
"docs":[
{
"_id":1,
"_source":[
"name"
]
},
{
"_id":2,
"_source":{
"include":[],
"exclude":[]
}
}
]
}
二、文档的操作类型
create:不存在则创建,存在则报错
delete:删除文档
update:全量替换或部分更新
index:索引(动词)
1. 自动生成id
# 自动生成id
POST indexname/_doc
{
"a":"3",
"b":5
}
2. 删除操作是懒删除
并没有真正的删除,只是标记为删除
3. index(可以是创建,也可以是全量替换)
如果数据不存在,创建:PUT {indexname}/_create/{id}
如果数据存在,全量替换:PUT {indexname}/_doc/{id}
PUT indexname/_doc/1?op_type=index
{
"a":1,
"b":2
}
4. filter_path=items.*.error
请求后面加这个参数,只输出错误信息
PUT indexname/_doc/10?filter_path=items.*.error
{
"a":1,
"b":2
}
三、批量增删改
1. 新增 create
POST _bulk
{"create":{"_index":"product","_id":10}}
{"name":"xxxx"}
2. 删除
POST _bulk
{"delete":{"_index":"product","_id":10}}
3. 修改
部分修改,数据不存在会报错
POST _bulk
{"update":{"_index":"product","_id":10}}
{"doc":{"name":"xxxx22"}}
4. 批量操作
也可以把增删改放在一起,批量操作
POST _bulk
{"create":{"_index":"product","_id":11}}
{"name":"xxxx"}
{"create":{"_index":"product","_id":12}}
{"name":"xxxx12"}
{"update":{"_index":"product","_id":12}}
{"doc":{"name":"xxxx13"}}
{"delete":{"_index":"product","_id":12}}
{"delete":{"_index":"product","_id":11}}
{"delete":{"_index":"product","_id":10}}
如果操作数据过多,结果也会有很多,只想看错误结果:
POST _bulk?filter_path=items.*.error
{"create":{"_index":"product","_id":11}}
{"name":"xxxx"}
{"create":{"_index":"product","_id":12}}
{"name":"xxxx12"}
{"update":{"_index":"product","_id":12}}
{"doc":{"name":"xxxx13"}}
{"update":{"_index":"product","_id":13}}
{"doc":{"name":"xxxx13"}}
{"delete":{"_index":"product","_id":12}}
{"delete":{"_index":"product","_id":11}}
{"delete":{"_index":"product","_id":10}}
id为13的数据操作失败
5. bulk操作的优缺点
优点:不消耗额外的内存。单条操作时,需要把{}中的数据在内存中序列化成json对象,消耗堆内存空间文章来源:https://www.toymoban.com/news/detail-495626.html
缺点:人进行阅读时,可读性较差文章来源地址https://www.toymoban.com/news/detail-495626.html
到了这里,关于Elasticsearch学习--索引的批量操作mget、bulk的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!