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

时间:2016-04-19 15:57:56

标签: python elasticsearch

我有一个场景,我们在文档上有一个数组字段,我们正在尝试更新每个文档中该数组中的键/值,所以例如doc就像:

_source:{
   "type": 1,
   "items": [
      {"item1": "value1"},
      {"item2": "value2"}
   ]
}

我们正在努力有效地更新" value1"例如,在#34; type"的每个文档上:1。我们希望避免冲突,我们希望我们可以通过使用脚本来完成所有操作,最好是在python中,但我可以&找到如何在python中更新字段的任何示例,更不用说跨多个文档了。

那么,是否可以使用脚本执行此操作,如果是这样,是否有人有一个很好的例子?

由于

1 个答案:

答案 0 :(得分:1)

我知道这有点晚了,但是我在搜索中遇到了这个问题,所以我想我会为其他任何来者解答。您绝对可以使用elasticsearch python库执行此操作。

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

更具体地说,我将研究“最有趣的”操作,因为您可以使用elasticsearch更新索引中的特定文档。

因此,您的脚本应执行以下操作:

  1. 使用“搜索”操作收集文档列表
  2. 根据大小,或者如果要穿线,可以将其存储在队列中
  3. 浏览文档列表/不在队列中弹出文档
  4. 创建更新的字段列表
  5. 调用“更新”操作EX:self.elasticsearch.update(index = MY_INDEX,doc_type = 1,id = 123456,body = {“ item1”:“ updatedvalue1”})