Как обновить документ без идентификатора условия вasticsearch? - PullRequest
1 голос
/ 15 апреля 2020

Моя цель - обновить документ.

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 и код. и обновите имена полей: имя и выбор .

допустим, у нас есть условия videoId ":" El-MOHABXh-qOCdi1FYN "," mobile ":" 9560206 " и " code ":" +91 "

1 Ответ

1 голос
/ 15 апреля 2020
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

})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...