1、ES批量查询
- 批量查询采用的是_mget的语法操作。例子:
GET /_mget
{
"docs":[{
"_index":"test_index",
"_type":"test_type",
"_id":"12"},
{
"_index":"test_index",
"_type":"test_type",
"_id":"13"}
]
}
结果:
{
"docs": [
{
"_index": "test_index",
"_type": "test_type",
"_id": "12",
"_version": 4,
"found": true,
"_source": {
"test_filed1": "xxx my test",
"test_filed2": "my test2",
"test_filed3": "my test3"
}
},
{
"_index": "test_index",
"_type": "test_type",
"_id": "13",
"_version": 1,
"found": true,
"_source": {
"test_filed1": "my test1",
"test_filed2": "my test2",
"test_filed3": "my test3"
}
}
]
}
- 当然,如果是index都相同的情况,那么可以采用如下方式:
GET /test_index/_mget
{
"docs":[
{
"_type":"test_type",
"_id":"12"
},
{
"_type":"test_type",
"_id":"13"
}
]
}
结果:
{
"docs": [
{
"_index": "test_index",
"_type": "test_type",
"_id": "12",
"_version": 4,
"found": true,
"_source": {
"test_filed1": "xxx my test",
"test_filed2": "my test2",
"test_filed3": "my test3"
}
},
{
"_index": "test_index",
"_type": "test_type",
"_id": "13",
"_version": 1,
"found": true,
"_source": {
"test_filed1": "my test1",
"test_filed2": "my test2",
"test_filed3": "my test3"
}
}
]
}
- 同样,当index和type都一致的情况下,可以这样查询,如下:
GET /test_index/test_type/_mget
{
"docs":[
{
"_id":"12"
},
{
"_id":"13"
}
]
} or
GET /test_index/test_type/_mget
{
"ids":[12,13]
}
结果:
{
"docs": [
{
"_index": "test_index",
"_type": "test_type",
"_id": "12",
"_version": 4,
"found": true,
"_source": {
"test_filed1": "xxx my test",
"test_filed2": "my test2",
"test_filed3": "my test3"
}
},
{
"_index": "test_index",
"_type": "test_type",
"_id": "13",
"_version": 1,
"found": true,
"_source": {
"test_filed1": "my test1",
"test_filed2": "my test2",
"test_filed3": "my test3"
}
}
]
}
2、ES批量修改
- 使用bulk的api来进行批量的修改操作,里面涉及的操作和批量查询有点区别,但是原理都是一样的。可以使用update或者index
POST /test_index/test_type/_bulk
{"update":{"_id":12}}
{"doc":{"test_filed1":"test update bulk12"}}
{"update":{"_id":13}}
{"doc":{"test_filed1":"test update bulk13"}}
3、ES批量删除
- 同样是使用bulk的api来进行批量删除,但是删除有一个特性,就是只需要一行就够了。
POST /_bulk
{"delete":{"_index":"test_index","_type":"test_type","_id":10}}
{"delete":{"_index":"test_index","_type":"test_type","_id":11}}
4、ES批量增加
- 增加有2种方式,一种是create,一种是index,create方式类似于我们的put操作
POST /_bulk
{"create":{"_index":"test_index","_type":"test_type","_id":3}}
{"test_filed1":"test bulk create test3"}
{"create":{"_index":"test_index","_type":"test_type","_id":2}}
{"test_filed1":"test bulk create test2"}