将SQL Update子句转换为ElasticSearch Update

时间:2018-09-11 18:27:50

标签: sql elasticsearch

我想对我的ES索引“ avails-ingest-history”进行以下更新查询。我将如何在ES中执行以下操作?

UPDATE `avails-ingest-history` 
SET is_hidden = False
WHERE transaction_guid='XXX'

这是我到目前为止所拥有的:

body = {
  "script": {
    "is_hidden": False
  },

  "query": {
    "match": {
      "guid": "xxx"
    }
  }
}

但是,我不确定script键还是精确匹配项是否使用match术语。

1 个答案:

答案 0 :(得分:0)

我不确定这是否是首选的方法,但这是我目前正在使用的方法:

body = {
  "script": {
    "lang": "painless",
    "inline": "ctx._source.is_hidden=false"
  },

  "query": {
    "match": {
      "guid": "xxx"
    }
  }
}
self.es.update_by_query(body=body, doc_type='_doc', index='avails-ingest-history')

请告诉我是否有更好的方法来完成上述任务。