【问题标题】:python: elasticsearch-dsl: update body not fully transferedpython:elasticsearch-dsl:更新正文未完全转移
【发布时间】:2017-12-07 21:42:17
【问题描述】:

'我正在通过python模块elasticsearch-dsl访问elasticsearch。

我有一个要传递给update() 函数的主体,以便将一些信息传输到索引:

>>> hits = client.search(index='xyz', body=body_search)
>>> print hits['hits']['hits'][0]['_source']['authors']
>>> [{u'id': u'None', u'name': u'Xyz'}, {u'id': u'None', u'name': u'Zyx'}, {u'id': None, u'name': u'Yzx'}]

>>> body_update = { "doc": { "authors": None } }
>>> body_update['doc']['authors'] = new_authors
>>> print body_update
>>> {'doc': {'authors': [{u'id': u'XYZ_0', u'name': u'Xyz'}, {u'id': u'ZYX_0', u'name': u'Zyx'}, {u'id': 'YZX_0', u'name': u'Yzx'}]}}

>>> client.update(index='xyz', doc_type='zyx', id=123, body=body_update)
>>> print client.search(index='xyz', body=body_search)['hits']['hits'][0]['_source']['authors']
>>> [{u'id': u'XYZ_0', u'name': u'Xyz'}, {u'id': u'ZYX_0', u'name': u'Zyx'}, {u'id': None, u'name': u'Yzx'}]

正文包含相应的信息,但并非所有信息都被传输。我检查了一下,正如预期的那样,搜索只返回一个文档。没有错误信息。重复行为相同(完全相同的作者)。

【问题讨论】:

    标签: python search elasticsearch indexing updates


    【解决方案1】:

    好的,我只需将refresh=True 添加到update() 查询。

    【讨论】:

      猜你喜欢
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2018-08-04
      • 2022-11-04
      • 2012-07-27
      • 2021-05-28
      • 2017-12-28
      相关资源
      最近更新 更多