複数データを投入する場合はBulkAPIを使う
APIのEndpoint
POST /_bulk
POST /{index}/_bulk
POST /{index}/{type}/_bulk
API実行
コマンド
$ curl -s -H "Content-Type: application/x-ndjson" -XPOST localhost:9200/_bulk --data-binary "@insert_data.js"
※insert_data.js
は投入データを定義したファイル
注意点
・-H "Content-Type: application/x-ndjson"
でheaderを指定する
・-d
ではなく、--data-binary
を使う
・insert_data.js
はndjson形式で記述する
insert_data.jsのサンプル
リファレンスがちょっと分かりづらかったのでうまく行ったサンプルを掲載します。
{"create":{ "_index" : "test_es" , "_id" : "1"}}
{"text":"あああああああ","text_id":291}
{"create":{ "_index" : "test_es" , "_id" : "2"}}
{"text":"えええええええ","text_id":338}
{"create":{ "_index" : "test_es" , "_id" : "3"}}
{"text":"たかたかたかか","text_id":941}
・1行目:実行するaction(create
)とmetadata(_index
, _id
)
・2行目:投入するデータ(text
, tesxt_id
)
※1行目と2行目のフォーマットで投入するデータ分記述する
※create以外にもindex、delete、updateがあり、それぞれフォーマットが異なる
※createとindexのみ2行目が必要