Ich aktualisiere ein Dokument in Elasticsearch mit der Java-API und von Zeit zu Zeit schlägt es fehl, ohne Angabe (möglicherweise 1 von 10). Der einzige Weg, um zu sehen, ob das Update erfolgreich war, ist, das Dokument zu lesen, um zu überprüfen, ob es aktualisiert wurde.So erkennen Sie, ob ein Dokumentupdate in Elasticsearch fehlgeschlagen ist
IndexResponse
hat eine Methode namens isCreated
und gibt, wie der Name sagt, nur true zurück, wenn eine erfolgreiche Einfügung stattgefunden hat. Diese Methode gibt bei einer Aktualisierung false zurück, unabhängig davon, ob sie erfolgreich oder nicht erfolgreich ist.
Hier ist mein Code, um ein Dokument zu aktualisieren:
IndexRequest indexRequest = new IndexRequest(index_name, type_name, doc_id)
.source(json);
UpdateRequest updateRequest = new UpdateRequest(index_name, type_name, doc_id)
.doc(json)
.upsert(indexRequest);
UpdateResponse response = es_client.update(updateRequest).actionGet();
Bevor ich den fehlgeschlagenen Update beheben kann, muss ich feststellen, ob der Antrag erfolgreich war oder nicht war. Aber wie?
P.S. UpdateResponse
erbt von IndexResponse
und hat keine zusätzliche Methode, um Update-Status oder zumindest meines Wissens anzuzeigen.
Ich _think_ Sie müssen das Dokument abrufen und überprüfen Sie es nach dem Update. –