如何将文档导入弹性搜索索引?

时间:2018-11-25 15:14:56

标签: node.js json elasticsearch

我在my_docs.json中有一堆json文档。

我想将所有这些都转储到我的Elasticsearch索引http://127.0.0.1:9200/{index}中。

我正在查看这个库https://github.com/taskrabbit/elasticsearch-dump,但是我找不到正确的命令。

为了进行转储,我尝试了:elasticdump --input=my_docs.json --output=http://127.0.0.1:9200/{index} type=data

,然后检查索引是否已更新:elasticdump --output=new_docs.json input=http://127.0.0.1:9200/{index} type=data

但是new_docs.json是空的;我期望它包含my_docs.json

中的所有json

我该如何解决?

1 个答案:

答案 0 :(得分:0)

您可以使用弹性搜索的curl和bulk index api将json数据转储到索引:

curl -H "Content-Type: application/json" -XPOST "localhost:9200/{index}/{type}/_bulk?pretty&refresh" --data-binary "@my_docs.json"

注意:json文件应具有以下格式的内容才能使上述内容起作用:

{"index":{"_index":"my_index","_type":"_doc","_id":"1"}}
{"field1":"field 1 data 1","field2":11}
{"index":{"_index":"my_index","_type":"_doc","_id":"2"}}
{"field1":"field 1 data 2","field2":21}

上面的每个文档用两行表示。第一行指示要在哪里建立索引以及什么是文档ID。下一行是文档的实际数据。