如何将JSON文件导入ElasticSearch 6.x?

时间:2017-12-22 19:46:12

标签: http curl elasticsearch elasticsearch-6

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

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

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

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

2 个答案:

答案 0 :(得分: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代表Newline分隔的JSON。

在导入JSON文件之前,您可能希望define mappings yourself或在导入期间让Elasticsearch generate mappings dynamically。如果您不希望Elasticsearch在导入期间动态生成映射,请参阅this doc以自定义映射。

<强>参考文献:

答案 1 :(得分:1)

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

您可以使用pip下载:

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

然后你可以通过发出:

将json文件加载到elasticsearch中
/wp-json/wc/v2/customers/<id>

免责声明:我是elasticsearch_loader的作者