zoukankan      html  css  js  c++  java
  • elasticsearch bulk操作

    Elasticsearch Bulk Index JSON Data
    
    
    我想尝试 buld index 一个json文件到一个新的Elasticsearch index 但是不能这么做,我有下面的json数据
    
    
    [{"Amount": "480", "Quantity": "2", "Id": "975463711", "Client_Store_sk": "1109"},
    {"Amount": "2105", "Quantity": "2", "Id": "975463943", "Client_Store_sk": "1109"},
    {"Amount": "2107", "Quantity": "3", "Id": "974920111", "Client_Store_sk": "1109"},
    {"Amount": "2115", "Quantity": "2", "Id": "975463798", "Client_Store_sk": "1109"},
    {"Amount": "2116", "Quantity": "1", "Id": "975463827", "Client_Store_sk": "1109"},
    {"Amount": "648", "Quantity": "3", "Id": "975464139", "Client_Store_sk": "1109"},
    {"Amount": "2126", "Quantity": "2", "Id": "975464805", "Client_Store_sk": "1109"},
    {"Amount": "2133", "Quantity": "1", "Id": "975464061", "Client_Store_sk": "1109"},
    {"Amount": "1339", "Quantity": "4", "Id": "974919458", "Client_Store_sk": "1109"},
    {"Amount": "1196", "Quantity": "5", "Id": "974920538", "Client_Store_sk": "1109"},
    {"Amount": "1198", "Quantity": "4", "Id": "975463638", "Client_Store_sk": "1109"},
    {"Amount": "1345", "Quantity": "4", "Id": "974919522", "Client_Store_sk": "1109"},
    {"Amount": "1347", "Quantity": "2", "Id": "974919563", "Client_Store_sk": "1109"},
    {"Amount": "673", "Quantity": "2", "Id": "975464359", "Client_Store_sk": "1109"},
    {"Amount": "2153", "Quantity": "1", "Id": "975464511", "Client_Store_sk": "1109"},
    {"Amount": "3896", "Quantity": "4", "Id": "977289342", "Client_Store_sk": "1109"},
    {"Amount": "3897", "Quantity": "4", "Id": "974920602", "Client_Store_sk": "1109"}]
    
    
    
    当我尝试使用标准的buld index api 从elasticseach 我得到了这个错误
    
    {"message":"ActionRequestValidationException[Validation Failed: 1: no requests added;]"}
    
    
    你需要做的是读取那个JSON文件,创建一个bulk 请求格式的
    
    
    即一行用于命令和一行用于文档,用换行符隔开,重复每个文档
    
    curl -XPOST localhost:9200/your_index/_bulk -d '
    {"index": {"_index": "your_index", "_type": "your_type", "_id": "975463711"}}
    {"Amount": "480", "Quantity": "2", "Id": "975463711", "Client_Store_sk": "1109"}
    {"index": {"_index": "your_index", "_type": "your_type", "_id": "975463943"}}
    {"Amount": "2105", "Quantity": "2", "Id": "975463943", "Client_Store_sk": "1109"}
    ... etc for all your documents
    '
    
    
    curl -X POST $elasticsearchwebaddress/_bulk -d '
    { "delete": { "_index": "website", "_type": "blog", "_id": "123" }} 
    { "create": { "_index": "website", "_type": "blog", "_id": "123" }}
    { "title":    "My first blog post" }
    { "index":  { "_index": "website", "_type": "blog" }}
    { "title":    "My second blog post" }
    { "update": { "_index": "website", "_type": "blog", "_id": "123", "_retry_on_conflict" : 3} }
    { "doc" : {"title" : "My updated blog post"} }
    '
    
    
    一行用于命令行,一行用于文档,用换行分开
    
    
    
    
    
    
    

  • 相关阅读:
    C++17 filesystem文件系统
    简易版本vue的实现
    javaSE基础04
    javaSE基础03
    javaSE基础02
    JavaSE基础01
    Document对象和window对象
    进程和子进程及端口的常用命令
    vue分页组件二次封装---每页请求特定数据
    css图片垂直水平居中及放大(实现水平垂直居中的效果有哪些方法?)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349895.html
Copyright © 2011-2022 走看看