web-dev-qa-db-fra.com

Comment mettre à jour un document en utilisant elasticsearch-py?

Quelqu'un at-il un exemple sur la façon d'utiliser la mise à jour? Il est documenté ici , mais la documentation n'est pas claire et ne comprend pas d'exemple de travail. J'ai essayé ce qui suit:

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

et je reçois

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

Je voudrais mettre à jour en utilisant un doc partiel, mais la méthode de mise à jour ne prend aucun argument nommé 'doc' ou 'document'.

37
Dan Hook

Vous y êtes presque, il vous suffit d'enfermer votre corps dans un champ "doc". La façon correcte de faire une mise à jour partielle avec elasticsearch-py est la suivante:

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