我想执行逐个查询的更新,特别是更新包含Gary的字段名称的特定文档。我正在使用最新版本的elasticsearch(2.3)我正在使用nodejs的官方ES客户端。提供替代方法(查找文档,更新文档中的特定字段)是可以接受的正确答案。
答案 0 :(得分:2)
这尚未在JavaScript客户端中发布。这将在Javascript客户端库的2.3 API版本中提供。现在,JS客户端只支持apiVersion:2.2
您可以使用任何HTTP客户端(Postman,curl,/ head /,Sense,...)来命中REST端点并执行您需要的操作。
如果您确实需要通过Node.js执行此操作,则可以使用http
模块,如下所示:
var http = require('http');
var options = {
host: 'localhost',
port: 9200,
path: '/your_index/your_type/_update_by_query',
method: 'POST'
};
var req = http.request(options, function(resp){
resp.on('data', function(chunk){
// check update response
});
}).on("error", function(e){
console.log("Got error: " + e.message);
});
var query = {
"script": {
"inline": "ctx._source.field = 'value2'"
},
"query": {
"term": {
"field": "value1"
}
}
};
// write data to request body
req.write(JSON.stringify(query));
req.write('\n');
req.end();