4

我在我的 CentOS7 主机的端口 9200 上运行了一个全新的 Elastic Search 6.1.1 空安装。我有这个“es.json”文件,其中包含准备好插入到 ES 中的数据样本。

我还有一个日志文件,其中每一行都是一个 json 块。我可以使用两者来填充我的 ES 数据库。

如何将这些数据和其他数据插入 ES?

我没有在文档和互联网上找到很好的解释。由于某种原因,文档并没有说得很清楚

4

2 回答 2

6

使用--data-binary标志curl从 JSON 文件批量导入。

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/{index}/{type}/_bulk?pretty' --data-binary @es.json

数据可以发布到端点之一/_bulk-/{index}/_bulk{index}/{type}/_bulk{index}提供或时{index}/{type},默认情况下它们将用于未明确提供它们的批量项目。

Content-Type: application/x-ndjson代表换行符分隔的 JSON。

在导入 JSON 文件之前,您可能希望自己定义映射或让 Elasticsearch在导入期间动态生成映射。如果您不希望 Elasticsearch 在导入期间动态生成映射,请参阅此文档自行定义映射。

参考:

于 2017-12-22T21:55:23.060 回答
1

您可以使用 elasticsearch_loader 将 json 文件加载到 elasticsearch(2.X、5.X、6.X)中。

您可以使用 pip 下载它:

pip install elasticsearch-loader

然后您将能够通过发出以下命令将 json 文件加载到 elasticsearch 中:

elasticsearch_loader --index incidents --type incident json file1.json file2.json

免责声明:我是 elasticsearch_loader 的作者

于 2018-03-17T09:43:02.703 回答