首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >elasticsearch.js大容量插入错误

elasticsearch.js大容量插入错误
EN

Stack Overflow用户
提问于 2015-12-08 14:30:46
回答 1查看 3K关注 0票数 0

我试图用javascript elasticsearch客户端插入/更新数据,但是我得到了错误:

代码语言:javascript
复制
  {
    "error": {
      "root_cause": [
        {
          "type": "illegal_argument_exception",
          "reason": "Malformed action/metadata line [1], expected a simple value for field [_data] but found [START_OBJECT]"
        }
      ],
      "type": "illegal_argument_exception",
      "reason": "Malformed action/metadata line [1], expected a simple value for field [_data] but found [START_OBJECT]"
    },
    "status": 400
  }

这是正在发送的数据。

代码语言:javascript
复制
esclient.bulk({
    body: [
        {
            "index":
            {
                "_index":"myindex",
                "_type":"movie",
                "_id":"1IEAEHNOIORANIT4SEOASNIE3HAETN2E...",
                "_data": 
                {
                    "title":"Title 2",
                    "description":"This should be updated with this new data.",
                    "score":1,
                    "suggest_title":"Title 2",
                    "img":"http://url.to.image/img.jpeg",
                    "genres":["Comedy"],
                    "release":"2015-01-07T23:00:00.000Z",
                    "language":"EN",
                    "provider":
                    {
                        "id":"InstaFilmFlixify",
                        "url":"http://www.InstaFilmFlixify.com/play?id=238412"
                    }
                }
            }
        }
    ]
})

这段代码似乎生成了对ES的以下请求:

代码语言:javascript
复制
 -> POST http://docker.me:9200/_bulk
  {
    "index": {
      "_index": "myindex",
      "_type": "movie",
      "_id": "1IEAEHNOIORANIT4SEOASNIE3HAETN2E...",
      "_data": {
        "title": "Title 2",
        "description": "This should be updated with this new.",
        "score": 1,
        "suggest_title": "Title 2",
        "img": "http://url.to.image/img.jpeg",
        "genres": [
          "Comedy"
        ],
        "release": "2015-01-07T23:00:00.000Z",
        "language": "EN",
        "provider": {
          "id": "InstaFilmFlixify",
          "url": "http://www.InstaFilmFlixify.com/play?id=238412"
        }
      }
    }
  }

我做错了什么?这是怎么回事?这可能是ES / ES适配器中的错误吗?

Elasticsearch版本2.1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-08 16:30:09

我以前从未见过"_data"参数。你是怎么想到用这个的?

看看js客户端的文档。

不管怎么说,这对你是有用的:

代码语言:javascript
复制
esclient.bulk({
    body: [
        {
            "index":
            {
                "_index":"myindex",
                "_type":"movie",
                "_id":"1IEAEHNOIORANIT4SEOASNIE3HAETN2E...",
            }
        },
        {
            "title":"Title 2",
            "description":"This should be updated with this new data.",
            "score":1,
            "suggest_title":"Title 2",
            "img":"http://url.to.image/img.jpeg",
            "genres":["Comedy"],
            "release":"2015-01-07T23:00:00.000Z",
            "language":"EN",
            "provider":
            {
                "id":"InstaFilmFlixify",
                "url":"http://www.InstaFilmFlixify.com/play?id=238412"
            }
        }
    ]
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34158476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档