繁体   English   中英

Elasticsearch批量JSON数据

[英]Elasticsearch Bulk JSON Data

这个问题来自这个SO线程

正如@Val建议的那样,我似乎有一个相似但不相同的查询,最好有一个单独的问题让其他人受益。

因此,与上述类似,我需要在索引中插入大量数据(我的初始测试大约是10 000个文档,但这仅适用于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格式(如此),而是操纵字符串。

我想知道是否有一种方法可以按原样import我的json数据(以json格式),而不必先手动操作文本(因为我的测试数据有10 000个条目,我相信你能明白为什么我我不喜欢手动这样做。

任何建议或建议的自动化工具来帮助解决这个问题

PS - 我正在使用Windows安装程序和Postman进行通话。

您可以使用像这样的shell命令轻松转换文件。 如果您的文件名为input.json ,则可以执行以下操作:

jq -c -r ".[]" input.json | while read line; do echo '{"index":{}}'; echo $line; done > 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM