一、bulk 批量增删改
### --- Bulk 操作解释将文档的增删改查一些列操作,通过一次请求全都做完。减少网络传输次数。
~~~ # 语法:
POST /_bulk
{"action": {"metadata"}}
{"data"}
### --- 操作示例
~~~ # 如下操作,删除1,新增5,修改2。
POST /_bulk
{ "delete": { "_index": "book", "_id": "1" }}
{ "create": { "_index": "book", "_id": "5" }}
{ "name": "test14","price":100.99 }
{ "update": { "_index": "book", "_id": "2"} }
{ "doc" : {"name" : "test"} }
### --- 功能:
~~~ delete:删除一个文档,只要1个json串就可以了 删除的批量操作不需要请求体
~~~ create:相当于强制创建 PUT /index/type/id/_create
~~~ index:普通的put操作,可以是创建文档,也可以是全量替换文档
~~~ update:执行的是局部更新partial update操作
~~~ 格式:每个json不能换行。相邻json必须换行。
~~~ 隔离:每个操作互不影响。操作失败的行会返回其失败信息。
### --- 实际用法:
~~~ bulk请求一次不要太大,否则一下积压到内存中,性能会下降。
~~~ 所以,一次请求几千个操作、大小在几M正好。
~~~ bulk会将要处理的数据载入内存中,所以数据量是有限的,最佳的数据两不是一个确定的数据,
~~~ 它取决于你的硬件,你的文档大小以及复杂性,你的索引以及搜索的负载。
~~~ 一般建议是1000-5000个文档,大小建议是5-15MB,默认不能超过100M,
~~~ 可以在es的配置文件(ES的config下的elasticsearch.yml)中配置。
~~~ http.max_content_length: 10mb
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor