Verwendung der Bulk-API zum Speichern der Schlüsselwörter in ES mithilfe von Python

Ich muss einige Nachrichten in ElasticSearch speichern, um sie in mein Python-Programm zu integrieren. Nun versuche ich die Nachricht zu speichern:

d={"message":"this is message"}
    for index_nr in range(1,5):
        ElasticSearchAPI.addToIndex(index_nr, d)
        print d

Das bedeutet, wenn ich 10 Nachrichten habe, muss ich meinen Code 10 Mal wiederholen. Ich möchte also versuchen, eine Skriptdatei oder eine Batchdatei zu erstellen. Ich habe das überprüftElasticSearch-Handbuch, BULK API ist möglich zu benutzen. Das Format sollte ungefähr so ​​aussehen:

{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_type" : "type1", "_id" : "2" } }
{ "create" : { "_index" : "test", "_type" : "type1", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_type" : "type1", "_index" : "index1"} }
{ "doc" : {"field2" : "value2"} }

was ich getan habe ist:

{"index":{"_index":"test1","_type":"message","_id":"1"}}
{"message":"it is red"}
{"index":{"_index":"test2","_type":"message","_id":"2"}}
{"message":"it is green"}

Zum Speichern des Dokuments verwende ich auch das Curl-Tool.

$ curl -s -XPOST localhost:9200/_bulk --data-binary @message.json

Jetzt möchte ich nutzenmein Python-Code um die Datei in der elastischen Suche zu speichern.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage