使用updateBuilder时未发生Elasticsearch部分更新

时间:2016-03-09 06:54:18

标签: elasticsearch jest

我在弹性搜索中有以下文档:

   {
      "postDate": "2016-03-09T11:57:37+0530",
      "message": "trying out Elasticsearch",
      "user": "ankita",
      "tags": [
        "testing"
      ]
    }

我正在尝试使用jestHttpClient使用以下代码更新它:

 private static void updateDocument(JestClient client, String id) {


    String script = "{\n" +
            "    \"script\" : \"ctx._source.tags += tag\",\n" +
            "    \"params\" : {\n" +
            "        \"tag\" : \"blue\"\n" +
            "    }\n" +
            "}";
    //String script ="{ \"script\" : \"ctx._source.newfield = \"something\"\"}";
    try {
        Update update=new Update.Builder(script).index("article").type("type").id(id).build();
        client.execute(update);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

但它没有更新文档,不知道这里有什么问题,

有没有办法可以在elasticsearch中部分更新文档?

1 个答案:

答案 0 :(得分:1)

您需要确保{{ "{{Angular.var}}" }} 配置文件中包含enabled dynamic scripting

由于您使用brew安装了ES,因此通常可以在elasticsearch.yml

找到该配置文件

只需将以下行附加到您的文件并重新启动ES:

/usr/local/Cellar/elasticsearch/2.2.0/config/elasticsearch.yml

之后您的更新脚本应该可以使用。