Elasticsearch Bulk-API - Index vs Erstellen/Aktualisieren
Ich bin mit dem Elasticsearch Bulk API zum erstellen oder aktualisieren von Dokumenten.
Ich tatsächlich wissen, ob Sie erstellt oder aktualisiert, aber ich kann meinen code vereinfachen, indem Sie einfach so dass Sie alle index
oder "upserts" im SQL-Sinne.
Gibt es keine Nachteile bei der Verwendung index
(und lassen Sie ES, es herauszufinden) über die Verwendung expliziter create
und update
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
create
müssen Sie sicherstellen, dass das Dokument existiert noch nicht im index andernfalls wird der Aufruf schlägt fehl, in der Erwägung, dass das verschicken des gleichen Dokuments mitindex
immer erfolgreich.Dann, wenn aus Gründen der Leistung, wissen Sie, Sie erstellen ein Dokument (mit entweder
create
oderindex
) und dann wirst du nur das update nur ein paar Eigenschaften, dann mitupdate
sinnvoll.Sonst, wenn Sie immer senden der vollständigen Dokumente, die ich benutzen würde
index
alle Zeit, sowohl die Erstellung und Aktualisierung. Wann immer es sieht einindex
Aktion, ES wird entweder das Dokument erstellen wenn Sie nicht existiert oder zu ersetzen, wenn es vorhanden ist, aber der Anruf wird immer erfolgreich sein.Die kurze Antwort: Nein, es ist kein Nachteil.
Erstellen und aktualisieren von Endpunkt sind spezielle Fälle. Mit erstellen, die Sie wollen, nichts zu tun, wenn das Dokument bereits vorhanden ist. Mit update können Sie weniger Daten, wenn Sie nicht alle Daten des Dokuments könnten Sie fügen Sie einfach ein paar Felder. Sie könnten auch stellen Sie sicher, das Dokument ist nur indiziert im Falle es ist schon da mit dem update.
Werden Sie nicht in der Lage, verwenden Sie die Indexposition für alles. Nach der docs:
Auch, wenn Sie die Aktualisierung eines Dokuments, könnte es sich lohnen, fügen Sie die "doc_as_upsert' - flag. Mehr info hier und hier