似乎我有一个相似但不相同的查询,因此最好像@Val建议的那样,让其他人从中受益。
因此,类似于上述内容,我需要在索引中插入大量数据(我的初始测试大约是10000个文档,但这只是针对POC,还有更多)。我想插入的数据在.json文档中,看起来像这样(片段):
[ { "fileName": "filename", "data":"massive string text data here" }, { "fileName": "filename2", "data":"massive string text data here" } ]
我自己是ElasticSearch的新手,但是,从阅读文档开始,我的假设是我可以获取.json文件并根据其中的数据创建索引。从那以后,我了解到json中的每个项目似乎都需要有一个“标头”,例如:
{"index":{}} { "fileName": "filename", "data":"massive string text data here" }
意思是,这不是实际的json格式(如此),而是操纵的字符串。
我想知道是否有一种方法可以直接获取importjson数据(采用json格式),而无需先手动操作文本(因为我的测试数据有10000个条目,我敢肯定,你会明白为什么我会d不想手动执行此操作)。
import
有什么建议或自动工具可以帮助您解决此问题吗?
PS-我正在使用Windows Installer和Postman进行通话。
您可以使用这样的单个shell命令轻松地转换文件。假设您的文件名为input.json,则可以执行以下操作:
input.json
jq -c -r ".[]" input.json | while read line; do echo '{"index":{}}'; echo $line; done > bulk.json
之后,您将拥有一个名为的文件bulk.json,该文件的格式正确,可以发送到批量端点。
bulk.json
然后,您可以像这样调用批量端点:
curl -XPOST localhost:9200/your_index/your_type/_bulk -H "Content-Type: application/x-ndjson" --data-binary @bulk.json
注意:如果尚未安装,jq则需要先安装。
jq