使用ES的_bulk进行批处理

使用ES的_bulk进行批处理

相关的报错:
(1){ “error”: “Content-Type header [text/plain;charset=UTF-8] is not supported”, “status”: 406 }
(2)“reason”: “The bulk request must be terminated by a newline [\n]”
使用ES的_bulk进行批处理_第1张图片
【0726存疑】将Content-Type设为application/json,会出现新的错误"The bulk request must be terminated by a newline [\n]”,而这个error解决方法是不能用json改回text。
使用ES的_bulk进行批处理_第2张图片
使用ES的_bulk进行批处理_第3张图片

官网是最好的解决问题的途径。document API,有个NOTE解决了上述主要问题,
使用ES的_bulk进行批处理_第4张图片
【总结如下】
(0)API:POST { {base_url}}/recipes/_bulk
(1)在Headers中将Content-Type设置为application/x-ndjson
(2)在Body中选择raw-Text;
(3)输入要求的json格式(必须有"_index"、"_type"、"_id")后,最后一行多一个换行;
使用ES的_bulk进行批处理_第5张图片
例如:

{
      "index" : {
      "_index" : "ecommerce","_type" : "product", "_id" : "2001" }} 
{
      "name" : "kdr" } 
{
      "delete" : {
      "_index" : "ecommerce","_type" : "product", "_id" : "2001" }}    
{
      "create" : {
      "_index" : "ecommerce","_type" : "product", "_id" : "2002" }}  
{
      "name" : "llb" } 
{
      "update" : {
     "_id" : "2002","_type" : "product", "_index" : "ecommerce"} } 
{
      "doc" : {
     "age" : "22"} } 

批量操作成功:
使用ES的_bulk进行批处理_第6张图片
使用ES的_bulk进行批处理_第7张图片

你可能感兴趣的:(使用ES的_bulk进行批处理)