1. 程式人生 > >ElasticSearch最佳入門實踐(二十六)bulk批量增刪改

ElasticSearch最佳入門實踐(二十六)bulk批量增刪改

1、bulk語法

POST /_bulk
{ “delete”: { “_index”: “test_index”, “_type”: “test_type”, “_id”: “3” }}
{ “create”: { “_index”: “test_index”, “_type”: “test_type”, “_id”: “12” }}
{ “test_field”: “test12” }
{ “index”: { “_index”: “test_index”, “_type”: “test_type”, “_id”: “2” }}
{ “test_field”: “replaced test2” }
{ “update”: { “_index”: “test_index”, “_type”: “test_type”, “_id”: “1”, “_retry_on_conflict” : 3} }
{ “doc” : {“test_field2” : “bulk test1”} }

每一個操作要兩個json串,語法如下:
{“action”: {“metadata”}}
{“data”}

舉例,比如你現在要建立一個文件,放bulk裡面,看起來會是這樣子的:
{“index”: {"_index": “test_index”, “_type”, “test_type”, “_id”: “1”}}
{“test_field1”: “test1”, “test_field2”: “test2”}

2、有哪些型別的操作可以執行呢?

(1)delete:刪除一個文件,只要1個json串就可以了
(2)create:PUT /index/type/id/_create,強制建立
(3)index:普通的put操作,可以是建立文件,也可以是全量替換文件
(4)update:執行的partial update操作

bulk api對json的語法,有嚴格的要求,每個json串不能換行,只能放一行,同時一個json串和一個json串之間,必須有一個換行

bulk操作中,任意一個操作失敗,是不會影響其他的操作的,但是在返回結果裡,會告訴你異常日誌

3、bulk size最佳大小

bulk request會載入到記憶體裡,如果太大的話,效能反而會下降,因此需要反覆嘗試一個最佳的bulk size。一般從1000-5000條資料開始,嘗試逐漸增加。另外,如果看大小的話,最好是在5~15MB之間。