1

我正在尝试在 elasticsearch 中运行一个简单的更新脚本。它似乎适用于 mvel,但不适用于 python。

curl -XPOST 'localhost:9200/index1/type1/1/_update?pretty=true' 
-d '{"script" : "ctx._source.myfield=\"item\""}'
{
  "ok" : true,
  "_index" : "index1",
  "_type" : "type1",
  "_id" : "1",
  "_version" : 7
}

curl -XPOST 'localhost:9200/index1/type1/1/_update?pretty=true' 
-d '{"script" : "ctx._source.myfield=\"item\"","lang":"python"}'
{
  "error" : "ElasticSearchIllegalArgumentException[failed to execute script]; nested: NullPointerException; ",
  "status" : 400
}

我的 ES 版本是 0.20.4

我的 elasticsearch-lang-python 插件是 1.1.0(我也试过 1.2.0)

4

1 回答 1

1

它看起来像python插件中的一个错误。您可以添加空参数列表作为解决方法:

curl -XPOST 'localhost:9200/index1/type1/1/_update?pretty=true' -d '{
    "script": "ctx[\"_source\"][\"myfield\"]=\"foo\"",
    "lang": "python",
    "params": {}
}'
于 2013-03-20T01:04:36.870 回答