elasticsearch - 如何在elasticsearch中更新没有ID条件的文档?
问题描述
我的目标是更新文档。
var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
host:"**************",
log: 'trace',
});
"hits": [
{
"_index": "fds",
"_type": "_doc",
"_id": "9560206-El-MOHABXh-qOCdi1FYN",
"_score": 1.0,
"_source": {
"videoId": "El-MOHABXh-qOCdi1FYN",
"mobile": "9560206",
"name": "alexa",
"choice": "like",
"code": "+95",
"lastUpdate": "2020-01-15T06:12:00.073Z"
}
},
{
"_index": "fds",
"_type": "_doc",
"_id": "9560206-SQENUHEBcYN_H8khsonC",
"_score": 1.0,
"_source": {
"videoId": "El-MOHABXh-qOCdi1FYN",
"mobile": "9560206",
"name": "alexa",
"choice": "like",
"code": "+91",
"lastUpdate": "2020-01-15T06:12:00.073Z"
}
}]
我的问题是我们如何更新条件字段名称为videoId、mobile和code 的文档。 并更新字段名称为name和choice。
假设我们有条件videoId": "El-MOHABXh-qOCdi1FYN", "mobile": "9560206"和 "code": "+91"
解决方案
let inputData = {
"script" : {
"source": `ctx._source['name']='Apple';
ctx._source['choice']='unlike'`
},
"query": {
"bool": {
"filter": [{
"match": {
"code":"+91"
}
},{
"match": {
"videoId": "El-MOHABXh-qOCdi1FYN"
}},{
"match": {
"mobile": "9560206"
}
}]
}
}
}
client.updateByQuery({
index: indexname,
type: '_doc',
body: inputdata
})
推荐阅读
- html - 使引导 div 响应
- html - 用 Excel 工作表中的 HTML 标记替换上标和斜体
- google-apps-script - 使用 setColumnFilterCriteria 后如何从 Filter 中获取过滤值?
- linux - 为什么循环内的变量递减不返回成功状态码?
- ruby-on-rails - 期望“对象”接收消息未按预期工作
- c++ - 是否有类似回溯的东西来指示变量到达其当前值的路径?
- laravel - 我不断收到“函数名必须是字符串”错误
- c++11 - 设置矩阵零
- python - Apache Beam - 使用默认触发器生成早期结果的固定窗口
- common-lisp - 如何在 Common Lisp 中进行基于图像的开发?