2016-04-19 11 views
1

私は私の一番上に作成し、要求を追加している私はelasticsearch一括挿入JSONファイル

awk -v ORS= -v OFS= '{$1=$1}1' data.json 

、末尾に、空のスペースを取り除くために次の行をawkのを使用している以下の​​3210

を持っていますdata.jsonの後ろに\ nと残りのデータが続きます。私はバルクが要求を提出発行すると

{"create": {"_index":"socteam", "_type":"products"}} 

、私は次のエラー

CURL -XPUT http://localhost:9200/_bulk 

{ 
    "took": 1, 
    "errors": true, 
    "items": [ 
    { 
     "create": { 
     "_index": "socteam", 
     "_type": "products", 
     "_id": "AVQuGPff-1Y7OIPIJaLX", 
     "status": 400, 
     "error": { 
      "type": "mapper_parsing_exception", 
      "reason": "failed to parse", 
      "caused_by": { 
      "type": "not_x_content_exception", 
      "reason": "Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes" 
      } 
     } 
     } 
    } 
    ] 

にこのエラーが何を意味するか上の任意のアイデアを得ますか?私はこのためthisドキュメントにelasticsearch

+0

たぶんそこ

{"index":{"_id":"1"}} {"name": "John Doe" } {"index":{"_id":"2"}} {"name": "Jane Doe" } 

単一のJSONファイル、それは私がそれを分解しなければならないという意味ですか? – Deano

+1

'_bulk'呼び出しにPOSTを使う必要があります。使用している完全なカールコマンドを表示できますか? '-d'または' --data-binary'引数を表示していません。 – Val

答えて

1

バニラを使用しています、あなたはURLでインデックスとタイプを指定する必要があり、任意のマッピングを作成していない:

curl -XPUT 'localhost:9200/socteam/products/_bulk?pretty' --data-binary "@data.json" 

それはPUTやPOSTメソッドのために動作します。
そして、あなたのdata.jsonファイルは次のような構造を持っている必要があります。私が持っているデータをインポートする別の方法を提示するが、私はちょうどこのことを知っている...それは助けていただければ幸いです...