通过文件初始化Elasticsearch数据库

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

出于testing目的,我想用一组数据初始化数据库。 与postgres类似,可以在容器启动时执行.sql文件。 使用elasticsearch完成这件事的最好方法是什么?

我已经使用Bulk API来用testing数据初始化Elasticsearch。

它的要点是,你创build一个新的分隔的JSON文件,按照批量API的要求,像这样:

{ "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'