Je cherche à répliquer la commande suivante à l'aide du client python ElasticSearch (et sans utiliser subprocess
):ElasticSearch-py aide en vrac équivalent de boucle avec le fichier
curl -s -XPOST "localhost:9200/index_name/_bulk" --data-binary @file
J'ai tenté d'utiliser l'aide en vrac sans chance:
es = Elasticsearch()
with open("file") as fp:
bulk(
client=es,
index="index_name",
actions=fp
)
Cela entraîne des erreurs type is missing
.
Le fichier, qui est traité très bien lors de l'utilisation curl
, ressemble un peu à ceci:
{"index":{"_type":"someType","_id":"123"}}
{"field1":"data","field2":"data",...}
{"index":{"_type":"someType","_id":"456"}}
{"field1":"data","field2":"data",...}
...
S'il vous plaît noter, je préfère ne pas modifier le contenu du fichier depuis que j'ai autour de 21000 avec le même format.
Vouliez-vous dire appeler 'readbulk '? Si vous omettez '()', la fonction 'TypeError: 'ne sera pas itérable. Les handles de fichiers ont des méthodes '__iter__' et' __next__' donc, comme prévu, l'utilisation de ce générateur n'a pas fait de différence. Encore, merci d'avoir répondu. – Palisand