【问题标题】:How to update document without ID condition in elasticsearch?如何在elasticsearch中更新没有ID条件的文档?
【发布时间】:2020-04-15 19:20:57
【问题描述】:

我的目标是更新文档。

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"
    }
}]

我的问题是我们如何更新文档,条件字段名称分别为 videoIdmobilecode。 并更新字段名称为 namechoice

假设我们有条件 videoId": "El-MOHABXh-qOCdi1FYN", "mobile": "9560206""code": "+91"

【问题讨论】:

    标签: elasticsearch elasticsearch-5


    【解决方案1】:
    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
    
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-29
      • 2018-01-31
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 2022-01-21
      • 1970-01-01
      相关资源
      最近更新 更多