Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Tutorial: Erstellen und Suchen von Dokumenten in Amazon OpenSearch Service
In diesem Tutorial erfahren Sie, wie Sie ein Dokument in Amazon OpenSearch Service erstellen und suchen. Sie fügen Daten zu einem Index im Formular eines JSON-Dokuments hinzu. OpenSearch Service erstellt einen Index anhand des ersten von Ihnen hinzugefügten Dokuments.
In diesem Tutorial wird erläutert, wie Sie HTTP-Anforderungen zum Erstellen von Dokumenten stellen, automatisch eine ID für ein Dokument generieren und grundlegende und erweiterte Suchvorgänge für Ihre Dokumente durchführen.
Anmerkung
Dieses Tutorial verwendet eine Domain mit offenem Zugriff. Für ein Höchstmaß an Sicherheit empfehlen wir, Ihre Domain in eine Virtual Private Cloud (VPC) zu legen.
Voraussetzungen
Für dieses Tutorial müssen die folgenden Voraussetzungen erfüllt sein:
-
Sie benötigen ein AWS-Konto.
-
Sie müssen über eine aktive OpenSearch Service-Domain verfügen.
Hinzufügen eines Dokuments zu einem Index
Um ein Dokument zu einem Index hinzuzufügen, können Sie ein beliebiges HTTP-Tool verwenden, z. B. Postman
Fügen Sie ein Dokument wie folgt einem Index hinzu
-
Navigieren Sie zur OpenSearch Dashboards-URL für Ihre Domäne. Sie finden die URL auf dem Dashboard der Domain in der OpenSearch Service-Konsole. Die URL weist das folgende Format auf:
domain-endpoint
/_dashboards/ -
Melden Sie sich mit Ihrem Hauptbenutzernamen und -passwort an.
-
Öffnen Sie den linken Navigationsbereich und wählen Sie Dev Tools (Entwickler-Tools) aus.
-
Das HTTP-Verb zum Erstellen einer neuen Ressource ist PUT, das Sie zum Erstellen eines neuen Dokuments und Indexes verwenden. Geben Sie in der Konsole den folgenden Befehl ein:
PUT fruit/_doc/1 { "name":"strawberry", "color":"red" }
Die
PUT
-Anforderung erstellt einen Index namens fruit und erstellt ein einzelnes Dokument gemäß des Indexes mit der ID 1. Sie erzeugt folgende Antwort:{ "_index" : "fruit", "_type" : "_doc", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 2, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 }
Erstellen automatisch generierter IDs
OpenSearch Service kann automatisch eine ID für Ihre Dokumente generieren. Der zu generierende Befehl IDs verwendet eine POST-Anforderung anstelle einer PUT-Anforderung und erfordert keine Dokument-ID (im Vergleich zur vorherigen Anforderung).
Geben Sie die folgende Anforderung in der Entwicklerkonsole ein:
POST veggies/_doc { "name":"beet", "color":"red", "classification":"root" }
Diese Anfrage erstellt einen Index mit dem Namen veggies und fügt das Dokument dem Index hinzu. Sie erzeugt folgende Antwort:
{ "_index" : "veggies", "_type" : "_doc", "_id" : "3WgyS4IB5DLqbRIvLxtF", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 2, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 }
Beachten Sie das zusätzliche _id
Feld in der Antwort, das anzeigt, dass automatisch eine ID erstellt wurde.
Anmerkung
Nach _doc
geben Sie nichts mehr in der URL an, wo normalerweise die ID steht. Da Sie ein Dokument mit einer generierten ID erstellen, geben Sie noch keine an. Diese ist für Updates reserviert.
Aktualisieren eines Dokuments mit einem POST-Befehl
Um ein Dokument zu aktualisieren, verwenden Sie einen HTTP-POST
-Befehl mit der ID-Nummer.
Erstellen Sie zunächst ein Dokument mit der ID 42
:
POST fruits/_doc/42 { "name":"banana", "color":"yellow" }
Verwenden Sie dann diese ID, um das Dokument zu aktualisieren:
POST fruits/_doc/42 { "name":"banana", "color":"yellow", "classification":"berries" }
Dieser Befehl aktualisiert das Dokument mit dem neuen Feld classification
. Sie erzeugt folgende Antwort:
{ "_index" : "fruits", "_type" : "_doc", "_id" : "42", "_version" : 2, "result" : "updated", "_shards" : { "total" : 2, "successful" : 2, "failed" : 0 }, "_seq_no" : 1, "_primary_term" : 1 }
Anmerkung
Wenn Sie versuchen, ein Dokument zu aktualisieren, das nicht existiert, erstellt OpenSearch Service das Dokument.
Ausführen von Massenaktionen
Sie können die API-Operation POST _bulk
zum Ausführen mehrerer Aktionen für einen oder mehrere Indizes in einer Anforderung verwenden. Befehle für Massenaktionen haben folgendes Format:
POST /_bulk <action_meta>\n <action_data>\n <action_meta>\n <action_data>\n
Jede Aktion erfordert zwei JSON-Zeilen. Zuerst geben Sie die Beschreibung der Aktion oder Metadaten an. In der nächsten Zeile geben Sie die Daten ein. Jeder Teil wird durch einen Zeilenumbruch (\n) getrennt. Eine Aktionsbeschreibung für eine Einfügung kann wie folgt aussehen:
{ "create" : { "_index" : "veggies", "_type" : "_doc", "_id" : "7" } }
Und die nächste Zeile mit den Daten könnte folgendermaßen aussehen:
{ "name":"kale", "color":"green", "classification":"leafy-green" }
Zusammengenommen stellen die Metadaten und die Daten eine einzelne Aktion in einem Massenvorgang dar. Sie können wie folgt viele Operationen in einer Anfrage ausführen:
POST /_bulk { "create" : { "_index" : "veggies", "_id" : "35" } } { "name":"kale", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "36" } } { "name":"spinach", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "37" } } { "name":"arugula", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "38" } } { "name":"endive", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "39" } } { "name":"lettuce", "color":"green", "classification":"leafy-green" } { "delete" : { "_index" : "vegetables", "_id" : "1" } }
Beachten Sie, dass die letzte Aktion vom Typ delete
ist. Es gibt keine Daten nach der delete
-Aktion.
Suchen nach Dokumenten
Jetzt, da Daten in Ihrem Cluster vorhanden sind, können Sie danach suchen. Sie können beispielsweise nach allen Wurzelgemüsen suchen oder eine Anzahl aller Blattgemüse ermitteln oder die Anzahl der pro Stunde protokollierten Fehler ermitteln.
Einfache Suchen
Eine einfache Suche sieht etwa folgendermaßen aus:
GET veggies/_search?q=name:l*
Die Anfrage erzeugt eine JSON-Antwort, die das Dokument zu Salaten enthält.
Erweiterte Suchen
Sie können erweiterte Suchvorgänge durchführen, indem Sie die Abfrageoptionen als JSON im Anfragetext angeben:
GET veggies/_search { "query": { "term": { "name": "lettuce" } } }
Dieses Beispiel erzeugt auch eine JSON-Antwort mit dem Dokument zu Salaten.
Sortieren
Sie können mehrere dieser Art von Abfragen mithilfe der Sortierung ausführen. Zuerst müssen Sie den Index neu erstellen, da bei der automatischen Feldzuordnung Typen ausgewählt wurden, die standardmäßig nicht sortiert werden können. Senden Sie die folgenden Anfragen, um den Index zu löschen und neu zu erstellen:
DELETE /veggies PUT /veggies { "mappings":{ "properties":{ "name":{ "type":"keyword" }, "color":{ "type":"keyword" }, "classification":{ "type":"keyword" } } } }
Füllen Sie dann den Index erneut mit Daten:
POST /_bulk { "create" : { "_index" : "veggies", "_id" : "7" } } { "name":"kale", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "8" } } { "name":"spinach", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "9" } } { "name":"arugula", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "10" } } { "name":"endive", "color":"green", "classification":"leafy-green" } { "create" : { "_index" : "veggies", "_id" : "11" } } { "name":"lettuce", "color":"green", "classification":"leafy-green" }
Jetzt können Sie mit einer Sortierung suchen. Diese Anforderung fügt eine aufsteigende Sortierung nach der Klassifizierung hinzu:
GET veggies/_search { "query" : { "term": { "color": "green" } }, "sort" : [ "classification" ] }
Zugehörige Ressourcen
Weitere Informationen finden Sie in den folgenden Ressourcen: