我在CentOS7主机的端口9200上运行了一个全新的Elastic Search 6.1.1空安装。我有这个“es.json”文件,数据样本已准备好插入ES中。
我还有一个日志文件,其中每一行都是一个json块。我可以使用它们来填充我的ES数据库。
如何将此数据和其他数据插入ES?
我没有在文档和互联网上找到很好的解释。由于某种原因,文档没有说清楚
答案 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的作者