0
'私はpythonモジュールelasticsearch-dslでelasticsearchにアクセスしています。python:elasticsearch-dsl:更新本体が完全に転送されていません
は、私はインデックスにいくつかの情報を転送するために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'}]
体は、それぞれの情報が含まれているが、それのすべてが転送されません。期待どおり、検索では1つのドキュメントのみが返されることを確認しました。エラーメッセージはありません。反復でも同じ動作(正確に同じ著者)。