如何在elasticsearch中更新没有ID条件的文档?
How to update document without ID condition in elasticsearch?
我的目标是更新文档。
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
})
我的目标是更新文档。
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
})