部分更新和查詢更新

部分更新:在需要完成部分文件更新時使用,即在以下示例中,具有 id doc_id 的文件的欄位 name 將更新為 John。請注意,如果缺少該欄位,則只會將其新增到文件中。

doc = {
    "doc": {
        "name": "John"
    }
}
es.update(index='index_name',
          doc_type='doc_name',
          id='doc_id',
          body=doc)

按查詢更新:在需要更新滿足條件的文件時使用,即在下面的示例中,我們更新 name 欄位與 John 匹配的文件的年齡。

q = {
  "script": {
    "inline": "ctx._source.age=23",
    "lang": "painless"
  },
  "query": {
    "match": {
        "name": "John"
    }
  }
}

es.update_by_query(body=q, 
                   doc_type='doc_name', 
                   index='index_name')