【问题标题】:Insert header for each document before uploading to elastic search在上传到弹性搜索之前为每个文档插入标题
【发布时间】:2018-02-06 04:26:09
【问题描述】:

我有一个如下格式的 ndjson 文件

{"field1": "data1" , "field2": "data2"}
{"field1": "data1" , "field2": "data2"}
....

我想添加一个类似的标题

{"index": {}}

在每个文档之前使用批量操作 我发现了一个类似的问题:Elasticsearch Bulk JSON Data

解决办法是这个jq命令:

jq -cr ".[]" input.json | while read line; do echo '{"index":{}}'; echo $line; done > bulk.json

但我收到此错误:

'while' is not recognized as a internal or external command

我做错了什么?我正在运行 Windows 还是有更好的解决方案? 谢谢

【问题讨论】:

    标签: json windows bash elasticsearch elasticsearch-bulk


    【解决方案1】:

    您的示例中的while 是一个结构,通常内置于开发人员友好的外壳中,例如sh、bash 或 zsh,但 windows 不提供开箱即用的功能。 See the bash docs for example.

    因此,如果这是一次性的事情,最快的解决方案可能是使用一些文本编辑器并通过使用一些多光标功能添加所需的操作行。

    另一方面,如果您受限于 Windows,但想要某种更好的 shell 来更频繁地使用它,您应该查看cmder project,它在使用与 git-for-windows 一起打包的完整版本。这应该允许您在非 linux 或 mac 环境中使用此类脚本功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 2015-06-01
      • 2015-12-18
      • 2022-08-12
      相关资源
      最近更新 更多