我有一个在 Docker 容器中运行的 elasticsearch 实例。
出于测试目的,我想用一组数据初始化数据库。类似于 postgres,其中可以编写在容器启动时执行的 .sql 文件。使用 elasticsearch 实现此目的的最佳方法是什么?
最佳答案
我用过 Bulk API使用测试数据初始化 Elasticsearch。
要点是,您创建一个 Newline delimited JSON文件,根据 Bulk 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'
关于testing - 通过文件初始化 Elasticsearch 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46470566/