天津11选5玩法介绍:elasticsearch批量操作bulk

作者: 魯智深 分類: java 發布時間: 2018-05-12 02:54

天津11选5中奖结果 www.ebzvaz.com.cn 批量導入合并多個操作,比如index,delete,update,create等等,bulk會把將要處理的數據載入內存中,所以數據量是有限制的,最佳的數據量不是一個確定的數值,它取決于你的硬件,你的文檔大小以及復雜性,你的索引以及搜索的負載。

bulk的語法格式是:

action and meta_data \n

optional source \n

action and meta_data \n

optional source \n

action and meta_data \n

optional source \n
……..

文檔用法

文檔用法

從上面能夠看到,兩行數據構成了一次操作,第一行是操作類型可以index,create,update,或者delete,第二行就是我們的可選的數據體,使用這種方式批量插入的時候,我們需要設置的它的Content-Type為application/json。

舉個例子,這是一條數據

一條數據

數據格式

實戰一下,加上id和不加上id,post多條數據,這里要注意的數據格式是2行,上面也提到了,必須這么寫,否則或報錯。

1
2
3
4
5
6
7
8
9
10
11
POST _bulk
{"index":{"_index":"testdb","_type":"shuju","_id":"5"}}
{"title":"5"}
{"index":{"_index":"testdb","_type":"shuju","_id":"6"}}
{"title":"6"}

POST _bulk
{"index":{"_index":"testdb","_type":"shuju"}}
{"title":"7"}
{"index":{"_index":"testdb","_type":"shuju"}}
{"title":"8"}

更多類似的數據實例:

1
2
3
4
5
6
7
8
POST _bulk
{"index":{"_index":"testdb","_type":"shuju","_id":"5"}}
{"title":"5"}
{"create":{"_index":"testdb","_type":"shuju","_id":"6"}}
{"title":"6"}
{"delete":{"_index":"testdb","_type":"shuju","_id":"5"}}}
{"update":{"_index":"testdb","_type":"shuju"}}
{"doc":{"title":"8"}}

針對不同的操作類型,第二行里面的可選的數據體是不一樣的,如下:

(1)index 和 create 第二行是source數據體

(2)delete沒有第二行

(3)update 第二行可以是partial doc,upsert或者是script

如果覺得我的文章對您有用,請隨意打賞。您的支持將鼓勵我繼續創作!

發表評論

電子郵件地址不會被公開。 必填項已用*標注