web-dev-qa-db-ja.com

elasticsearch-pyを使用してドキュメントを更新する方法は?

更新の使用方法の例はありますか? here で文書化されていますが、文書化は不明確であり、実際の例は含まれていません。私は次を試しました:

coll = Elasticsearch()
coll.update(index='stories-test',doc_type='news',id=hit.meta.id,
                body={"stanford": 1, "parsed_sents": parsed })

そして私は得る

elasticsearch.exceptions.RequestError: 
TransportError(400, u'ActionRequestValidationException[Validation Failed: 1: script or doc is missing;]')

部分的なドキュメントを使用して更新したいのですが、更新メソッドは「doc」または「document」という名前の引数を取りません。

37
Dan Hook

ほぼそこにいるので、「doc」フィールド内に体を入れるだけです。 elasticsearch-pyで部分更新を行う正しい方法は次のようになります。

coll = Elasticsearch()
coll.update(index='stories-test',doc_type='news',id=hit.meta.id,
                body={"doc": {"stanford": 1, "parsed_sents": parsed }})
67
Val