本篇文章提供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/
技術在於溝通交流!