elasticsearch _update_by_query不起作用

时间:2017-02-14 01:17:48

标签: elasticsearch elasticsearch-2.0

Elasticsearch:2.3.3

以下是我的命令序列

索引文档

POST test-index/doc
{
  "name":"sahas"
}

检索文档

GET test-index/_search
{
  "query": {
    "match": {
      "name": "sahas"
    }
  }
}

更新文档

POST test-index/doc/_update_by_query?name=subramanian
{
  "query": {
    "match": {
      "name": "sahas"
    }
  }
}

更新结果

{
  "took": 9,
  "timed_out": false,
  "total": 1,
  "updated": 1,
  "batches": 1,
  "version_conflicts": 0,
  "noops": 0,
  "retries": 0,
  "failures": []
}

但是当我再次查询文档时,它没有更新。 反正有没有弄清楚为什么更新不能在这里工作? 我错过了一些傻事吗?

感谢任何投入..

1 个答案:

答案 0 :(得分:2)

您的查询更新并未修改来源。您需要包含一个脚本才能执行此操作:

POST test-index/doc/_update_by_query
{
  "query": {
    "match": {
      "name": "sahas"
    }
  },
  "script": {
    "inline": "ctx._source.name = 'subramanian'"
  }
}