2015-06-02 21 views
23

Czy ktoś ma przykład, jak korzystać z aktualizacji? Jest to dokumentowane here, ale dokumentacja jest niejasna i nie zawiera przykładowego działania. Próbowałem następujące:Jak zaktualizować dokument za pomocą elasticsearch-py?

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

i dostaję

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

Chciałbym zaktualizować za pomocą częściowej doc, ale metoda aktualizacji nie ma żadnego argumentu o nazwie „doc” lub ' dokument'.

Odpowiedz

41

Jesteś prawie na miejscu, wystarczy zamknąć swoje ciało w polu "doc". Prawidłowy sposób robienia częściową aktualizację z elasticsearch-Py idzie tak:

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

a co jeżeli użycie to z update_by_query api :) Nie powinno być parametr id Chyba .. Albo? –

+2

Nie, to nic innego. update-by-query to zewnętrzna wtyczka, a nie coś, co jest obsługiwane przez bibliotekę elasticsearch-py. – Val

+0

Czy jest możliwe użycie update_by_query w pythonie z żądaniem http? –

Powiązane problemy