Elasticsearch之批量操作bulk

2021-09-22 09:39:20 字數 3162 閱讀 6538

1、bulk相當於資料庫裡的bash操作。

2、引入批量操作bulk,提高工作效率,你想啊,一批一批新增與一條一條新增,誰快?

3、bulk api可以幫助我們同時執行多個請求

4、bulk的格式:

action:index/create/update/delete

metadata:_index,_type,_id

request body:_source (刪除操作不需要加request body) }

5、bulk裡為什麼不支援get呢?

答:批量操作,裡面放get操作,沒啥用!所以,官方也不支援。

6、create 和index的區別

如果資料存在,使用create操作失敗,會提示文件已經存在,使用index則可以成功執行。

7、bulk一次最大處理多少資料量?

bulk會把將要處理的資料載入記憶體中,所以資料量是有限制的,最佳的資料量不是乙個確定的數值,它取決於你的硬體,你的文件大小以及複雜性,你的索引以及搜尋的負載。

一般建議是1000-5000個文件,如果你的文件很大,可以適當減少佇列,大小建議是5-15mb,預設不能超過100m,可以在es的配置檔案(即$es_home下的config下的elasticsearch.yml)中。

來修改這個值http.max_content_length: 100mb【不建議修改,太大的話bulk也會慢】,

批量操作bulk例子

(1)比如,我這裡,在$es_home裡,新建一檔案,命名為request。(這裡為什麼命名為request,去看官網就是)在linux裡,有無字尾沒區別。

或者

}例子:

} }}        (刪除操作不需要加request body)      

}} }

(2)使用檔案的方式

vi requests 

寫入批量操作語句。比如,下面}}

}}}在$es_home目錄下,執行下面命令

curl  -put  '192.168.80.200:9200/_bulk'   --data-binary @request;

或curl  -xpost  '192.168.80.200:9200/_bulk'   --data-binary @request;

之後,再檢視下。

[hadoop@djt002 elasticsearch-2.4.3]$ curl -xget ''

[hadoop@djt002 elasticsearch-2.4.3]$ curl -xget ''

[hadoop@djt002 elasticsearch-2.4.3]$ curl -xget ''

}[hadoop@djt002 elasticsearch-2.4.3]$ curl -xget ''

}(3)bulk請求可以在url中宣告/_index 或者/_index/_type

這個,自行去測試!

官網

Elasticsearch(三) 批量操作

語法 什麼是partial update?put index type id,建立文件 替換文件,就是一樣的語法 一般對應到應用程式中,每次的執行流程基本是這樣的 1 應用程式先發起乙個get請求,獲取到document,展示到前台介面,供使用者檢視和修改 2 使用者在前台介面修改資料,傳送到後台 ...

Spring JdbcTemplate之批量插入

jdbctemplate簡介 spring對資料庫的操作在jdbc上面做了深層次的封裝,使用spring的注入功能,可以把datasource註冊到jdbctemplate之中。jdbctemplate位於spring jdbc 5.0.6.release.jar jdbctemplate主要提供以...

Transact SQL命令之批

批 在建立批的時候,應注意下面幾點 1 只有某些語句可以合併起來建立乙個批,而其它一些語句不能合併。2 不能在同乙個批中既將規則和預設繫結在列上,又使用它們。3 不能在乙個批中刪除物件又重新建立它們。4 不能在乙個批中修改乙個表並引用新列。5 不能在乙個批中定義並使用check約束。6 使用set語...