我在我的 CentOS7 主机的端口 9200 上运行了一个全新的 Elastic Search 6.1.1 空安装。我有这个“es.json”文件,其中包含准备好插入到 ES 中的数据样本。
我还有一个日志文件,其中每一行都是一个 json 块。我可以使用两者来填充我的 ES 数据库。
如何将这些数据和其他数据插入 ES?
我没有在文档和互联网上找到很好的解释。由于某种原因,文档并没有说得很清楚
我在我的 CentOS7 主机的端口 9200 上运行了一个全新的 Elastic Search 6.1.1 空安装。我有这个“es.json”文件,其中包含准备好插入到 ES 中的数据样本。
我还有一个日志文件,其中每一行都是一个 json 块。我可以使用两者来填充我的 ES 数据库。
如何将这些数据和其他数据插入 ES?
我没有在文档和互联网上找到很好的解释。由于某种原因,文档并没有说得很清楚
使用--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 在导入期间动态生成映射,请参阅此文档自行定义映射。
参考:
您可以使用 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 的作者