elasticsearch使用bulk實現批量操作
本篇文章提供ES原生批量操作語法及使用bulk批量操作文件。文章依舊提供語法,具體實現大家根據語法,在對應處進行替換即可
一、原生批量獲取文件
1、獲取指定文件值(1)
語法: GET /_mget { “doce”:[ { “_index”:”索引名1”, “_type”:”型別1”, “_id”:”id” }, { “_index”:”索引名1”, “_type”:”型別1”, “_id”:”id”
} ] } |
2、獲取指定欄位的值(2)
GET /_mget { “doce”:[ { “_index”:”索引名1 “_type”:”型別1”, “_id”:”id”, “_source”:”欄位名” }, { “_index”:”索引名1”, “_type”:”型別1”, “_id”:”id”, “_source”:[“欄位名1”,”欄位名2”] } ] } |
3、當索引和型別一致時獲取多個文件
GET /索引名/型別 _mget { “ids”:[“id1”,”id2”,”id3”] } |
二、使用bulk API實現批量操作
Bulk的格式:
{action:{metadata}}\n
{requestbody}\n
action:(行為)
create :文件不存在時建立(存在時建立會報錯)
update:更新文件
index:建立新文件或替換已有的文件
delete:刪除一個文件
metadata:_index,_type,_id
示例:
{ “delete”:{ “_index”:”索引名”, “_type”:”型別”, “_id”:”id號” } } |
同時新增多個文件
POST /索引名/型別/_bulk {“index”:{“_id”:1}}換行 {“欄位名1”:”值1”,”欄位名2”:”值2”} {“index”:{“_id”:2}}換行 {“欄位名1”:”值1”,”欄位名2”:”值2”} {“index”:{“_id”:3}}換行 {“欄位名1”:”值1”,”欄位名2”:”值2”} |
以上程式碼是本人根據實際使用進行的提煉,若大家有所疑問或不同見解歡迎評論。本人部落格主頁:https://home.cnblogs.com/u/chenyuanbo/
技術在於溝通交流!