elasticsearch,Python,elasticsearch" /> elasticsearch,Python,elasticsearch" />

Elasticsearch:使用python脚本更新多个文档?

Elasticsearch:使用python脚本更新多个文档?,python,elasticsearch,Python,elasticsearch,我有一个场景,我们在文档上有一个数组字段,我们试图在每个文档上更新该数组中的一个键/值,因此,例如,一个文档看起来像: _source:{ "type": 1, "items": [ {"item1": "value1"}, {"item2": "value2"} ] } 例如,我们试图在“类型”为1的每个文档上高效地更新“value1”。我们希望避免冲突,我们希望可以通过使用scrip来实现这一切,最好是在python中,但我找不到任何关于如何在py

我有一个场景,我们在文档上有一个数组字段,我们试图在每个文档上更新该数组中的一个键/值,因此,例如,一个文档看起来像:

_source:{
   "type": 1,
   "items": [
      {"item1": "value1"},
      {"item2": "value2"}
   ]
}
例如,我们试图在“类型”为1的每个文档上高效地更新“value1”。我们希望避免冲突,我们希望可以通过使用scrip来实现这一切,最好是在python中,但我找不到任何关于如何在python中更新字段的示例,更不用说跨多个文档了

那么,有没有可能用脚本来实现这一点?如果有,有没有人有一个好的例子


谢谢

我知道这有点晚了,但我在一次搜索中发现了这一点,所以我想我会为任何其他路过的人回答。您完全可以利用elasticsearch python库实现这一点

您可以通过找到所需的所有信息和示例

更具体地说,我将研究“摄取”操作,因为您可以使用elasticsearch更新索引中的特定文档片段

因此,您的脚本应该做一些事情:

  • 使用“搜索”操作收集文档列表
  • 根据大小,或者如果要线程,可以将其存储在队列中
  • 循环浏览文档列表/pop文档关闭队列
  • 创建更新的字段列表
  • 调用“update”操作例如:self.elasticsearch.update(index=MY_index,doc_type=1,id=123456,body={“item1”:“updatedvalue1”})