我在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
我该如何解决?
答案 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。下一行是文档的实际数据。