代码之家  ›  专栏  ›  技术社区  ›  David542

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

  •  0
  • David542  · 技术社区  · 6 年前

    我有以下疑问:

    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 回复  |  直到 6 年前
        1
  •  0
  •   Tim    6 年前

    你需要设置 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
        }
      }
    }
    

    免责声明:我还没有试过这种语法。不过,类似的事情应该行得通。