如何在elasticsearch 1.5.2中更新多文档

时间:2016-05-05 14:42:50

标签: elasticsearch plugins lucene

我正在尝试更新使用错误(对我们)国家/地区名称创建的elasticsearch上的多个文档。

我试图通过使用“update_by_query”插件版本2.5.0(应该与ES 1.5.2一起使用)来实现。 plugin page

这是我尝试过的:

POST incidents/political/_update_by_query
{
  "query":{
    "filtered":{
      "filter":{
        "bool":{
          "must":{
            "term":{
              "CountryName": "Cote d'Ivoire"          
            }
          }
        }
      }
    }
  },
  "script":{
    "inline":"ctx._source.CountryName = newName",
    "params":{
      "newName":"Cote dIvoire"
    }
  }
}

结果是:

{
   "ok": true,
   "took": 9,
   "total": 2,
   "updated": 0,
   "indices": [
      {
         "incidents": {}
      }
   ]
}

我可以看到它能够找到这两个记录,但由于某种原因无法更新它们。

我在配置文件中启用了所需的设置:

script.inline: on 
script.indexed: on
script.disable_dynamic: false

我不确定可能会遗漏或错误。

1 个答案:

答案 0 :(得分:2)

尝试编写查询的脚本部分,如下所示:

 "script" : "ctx._source.CountryName = 'Cote dIvoire'"

让我知道它是否有效。