如何在ElasticSearch更新查询中更新版本

时间:2018-09-25 21:04:15

标签: python elasticsearch

我有以下查询:

body = {
  "script": {
    "inline": "ctx._source.is_hidden=false",
    "inline": "ctx._version=100"
  },
  "query": {
    "match": {
      "filename": self.filename
    }
  }
}
task_data = self.es.update_by_query(body=body, doc_type='_doc', index='trackingesthistory', wait_for_completion=False)

我该如何做,将上述所有文档的版本都设置为100?

1 个答案:

答案 0 :(得分:0)

您需要将version_type设置为external。我不记得确切的语法,但我相信您可以将其放在脚本中。

body = {
  "script": {
    "
    "inline": "ctx._source.is_hidden=false",
    "inline": "ctx._index.version_type=external",
    "inline": "ctx._version=100"
  },
  "query": {
    "match": {
      "filename": self.filename
    }
  }
}

免责声明:我没有尝试过这种确切的语法。像这样的东西应该可以工作。