我有一个在Docker容器内运行的elasticsearch实例。
出于测试目的,我想用一组数据初始化数据库。类似于postgres,其中可以编写.sql文件,这些文件在容器启动时执行。使用elasticsearch实现这一目标的最佳方法是什么?
答案 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'