如何在弹性搜索集群中加载Json?

时间:2016-08-04 20:29:16

标签: elasticsearch

如果这是一个基本问题我提前道歉,但这是我第一次涉足ES。如何定位Json文件并将其索引到ES中进行索引?

我已经查看了ES文档和类似我的问题,但到目前为止,所列出的方法都没有对我有用。

Import/Index a JSON file into Elasticsearch

is there any way to import a json file(contains 100 documents) in elasticsearch server.?

我正在使用Mac OS,并且我用_bulk我的Json文件的cURL命令是:

 curl -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary "@accounts.json"

但是,会弹出此错误:

{
   "error": {
    "root_cause": [
      {
        "type": "parse_exception",
        "reason": "Failed to derive xcontent"
      }
    ],
    "type": "parse_exception",
    "reason": "Failed to derive xcontent"
  },
  "status": 400
}

3 个答案:

答案 0 :(得分:1)

要使用批量api,文件中的所有json对象都应该有这样一行:

{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }

指定索引和类型名称以及文档ID。

例如,包含以下内容的文件将使用index = test索引2个文档,使用不同的field1值键入= type1和id = 1和2:

{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{ "field1" : "value1" }
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "2" } }
{ "field1" : "value3" }

然后你可以运行如下命令:

curl -s -XPOST 'localhost:9200/_bulk' --data-binary "@accounts.json"

答案 1 :(得分:1)

enter image description here https://www.getpostman.com/docs/environments获取邮递员,使用.format()命令为其提供文件位置。

答案 2 :(得分:0)

弄清楚我错了什么。不要在REST服务上这样做。从终端导入数据。