如何在Elasticsearch中将URL参数添加到elasticsearch UpdateByQuery

时间:2019-05-15 08:24:55

标签: javascript node.js elasticsearch

我有一个nodejs应用,该应用调用ES的updateByQuery API,如下所示:

elasticsearchClient.updateByQuery({
            index: 'logstash-dev-2019.05.14',
            body: {
                "query": {
                    "ids": {
                        "values": alert.esId
                    }
                },
                "script": {
                    "source": `ctx._source.alertObject.violation_status = 'closed'`,
                    "lang": "painless"
                }
            }
        });

但是偶尔我遇到version_conflict_engine_exception。我想通过使用documentation中提到的conflict=proceed来解决冲突。我在哪里适合我的更新电话?

1 个答案:

答案 0 :(得分:1)

您可以使用docs中提供的querystring对象,请滚动到链接的末尾。

elasticsearchClient.updateByQuery({
  index: 'logstash-dev-2019.05.14',
  querystring: {
    "conflict": "proceed"
  },
  body: {
    "query": {
      "ids": {
        "values": alert.esId
      }
    },
    "script": {
       "source": `ctx._source.alertObject.violation_status = 'closed'`,
       "lang": "painless"
    }
  }
});