通过文件初始化Elasticsearch DB

时间:2017-09-28 13:36:47

标签: testing docker elasticsearch

我有一个在Docker容器内运行的elasticsearch实例。

出于测试目的,我想用一组数据初始化数据库。类似于postgres,其中可以编写.sql文件,这些文件在容器启动时执行。使用elasticsearch实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

我已使用Bulk API初始化带有测试数据的Elasticsearch。

根据它的要点,您可以按照批量API的要求创建Newline delimited JSON文件,如下所示:

{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{ "field1" : "value1" }

(注意文件末尾的换行符。如果没有它,它将无效。)

然后将其上传到批量端点,这可以通过curl完成,如下所示:

curl -X POST --data-binary '@test-data.json' \
    -H 'Content-Type: application/x-ndjson' 'localhost:9200/_bulk?pretty'