【发布时间】: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