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.
(Vorschau) Erweiterte Suchfunktionen mit einer Amazon S3 S3-Vektor-Engine
Wichtig
Die Amazon S3 Vectors-Integration mit OpenSearch Service befindet sich in der Vorschauversion und kann sich ändern.
Amazon OpenSearch Service bietet die Möglichkeit, Amazon S3 als Vektor-Engine für Vektorindizes zu verwenden. Diese Funktion ermöglicht es Ihnen, Vektordaten auf Amazon S3 auszulagern und gleichzeitig die Vektorsuchfunktionen in Sekundenbruchteilen zu niedrigen Kosten beizubehalten.
Mit dieser Funktion werden Vektoreinbettungen in einem Amazon S3 S3-Vektorindex OpenSearch gespeichert, während andere Dokumentfelder im Speicher des OpenSearch Clusters aufbewahrt werden. Diese Architektur bietet die folgenden Vorteile:
-
Haltbarkeit: In S3 Vectors geschriebene Daten werden auf S3 gespeichert, das für eine Datenbeständigkeit von 11 bis 9 Sekunden ausgelegt ist.
-
Skalierbarkeit: Laden Sie große Vektordatensätze auf S3 aus, ohne Cluster-Speicher zu verbrauchen.
-
Wirtschaftlichkeit: Optimieren Sie die Speicherkosten für vektorlastige Workloads.
OpenSearch hat die folgenden Anforderungen für die Verwendung von S3-Vektorindizes:
-
OpenSearch Version 2.19 oder höher
-
OpenSearch Optimierte Instanzen
-
Aktuelle Patch-Version für Ihr OpenSearch Release
S3-Vektoren aktivieren
Wenn Sie eine neue Domain erstellen oder eine bestehende Domain aktualisieren, können Sie im Abschnitt Erweiterte Funktionen die Option S3-Vektoren als Engine aktivieren auswählen. Mit dieser Einstellung können OpenSearch Sie einen S3-Vektor-Bucket erstellen, wenn Sie S3-Vektoren als Engine verwenden. Wenn Sie diese Option aktivieren, OpenSearch konfiguriert Sie S3 Vectors für Ihre Domain wie folgt:
-
Zwei neue Grants für den mit Ihrer Domain konfigurierten AWS KMS Schlüssel erstellen:
-
Ein Zuschuss für die Indexierungsaufträge im Hintergrund von S3 Vectors mit Entschlüsselungsrechten
-
Ein Zuschuss für die Erstellung OpenSearch von S3-Vektor-Buckets mit Berechtigungen
GenerateDataKey
-
-
Konfiguration des KMS-Schlüssels, der von Ihrer OpenSearch Domain als CMK für die Verschlüsselung aller übrigen Vektorindexdaten verwendet wird.
Indizes mit der S3-Vektor-Engine erstellen
Nachdem Sie eine Domain konfiguriert haben, können Sie einen oder mehrere k-NN-Indizes mit Feldern erstellen, die s3vector
als Backend-Vektor-Engine in den Indexzuordnungen verwendet werden. Sie können je nach Anwendungsfall verschiedene Vektorfelder mit unterschiedlichen Engine-Typen konfigurieren.
Wichtig
Sie können die s3vector
Engine nur verwenden, um eine Felddefinition während der Indexerstellung zuzuordnen. Sie können die Zuordnung mit der s3vector
Engine nach der Indexerstellung nicht hinzufügen oder aktualisieren.
Hier sind einige Beispiele, die S3-Vektor-Engine-Indizes erstellen.
Beispiel: Erstellen eines k-NN-Indexes mit der S3-Vektor-Engine
PUT my-first-s3vector-index { "settings": { "index": { "knn": true } }, "mappings": { "properties": { "my_vector_1": { "type": "knn_vector", "dimension": 2, "space_type": "l2", "method": { "engine": "s3vector" } }, "price": { "type": "float" } } } }
Beispiel: Erstellung eines k-NN-Index sowohl mit der S3-Vektor- als auch mit der FAISS-Engine
Dieses Beispiel unterstreicht die Tatsache, dass Sie mehrere Vektor-Engines innerhalb desselben Index verwenden können.
PUT my-vector-index { "settings": { "index": { "knn": true } }, "mappings": { "properties": { "my_vector_1": { "type": "knn_vector", "dimension": 2, "space_type": "l2", "method": { "engine": "s3vector" } }, "price": { "type": "float" }, "my_vector_2": { "type": "knn_vector", "dimension": 2, "space_type": "cosine", "method": { "name": "hnsw", "engine": "faiss", "parameters": { "ef_construction": 128, "m": 24 } } } } } }
Nicht unterstütztes Beispiel: Hinzufügen einer S3-Vektor-Engine nach der Indexerstellung
Der folgende Ansatz wird nicht unterstützt und schlägt fehl.
PUT my-first-s3vector-index { "settings": { "index": { "knn": true } } } PUT my-first-s3vector-index/_mapping { "properties": { "my_vector_1": { "type": "knn_vector", "dimension": 2, "space_type": "l2", "method": { "engine": "s3vector" } }, "price": { "type": "float" } } }
Funktionelle Einschränkungen
Beachten Sie die folgenden Einschränkungen, bevor Sie die s3vector
Engine in einem Index verwenden:
Funktion | Behavior |
---|---|
Split/Shrink/CloneIndex |
Diese APIs schlagen fehl, wenn sie mit einem Index verwendet werden, der mit der |
Snapshots |
Indizes, die die
AnmerkungSnapshots werden zwar nicht für die point-in-time Wiederherstellung unterstützt, aber die |
UltraWarm Stufe |
Mit der |
Cluster-übergreifende Replikation |
Mit der |
Schutz vor versehentlichem Löschen |
Da Snapshots für Indizes, die die |
Radiale Suche |
Abfragen mit radialer Suche werden für Felder, die die |
Dokumente werden indexiert
Nachdem Sie einen Index mit der S3-Vektor-Engine erstellt haben, können Sie Dokumente mithilfe der _bulk
Standard-API aufnehmen. OpenSearch überträgt Vektordaten von knn_vector
Feldern, die die s3vector
Engine verwenden, automatisch in Echtzeit in den S3-Vektorindex. Daten, die zu anderen Feldern oder knn_vector
Feldern gehören, die andere Engines verwenden, werden OpenSearch in einer eigenen Speicherebene gespeichert.
OpenSearch Garantiert für alle bestätigten Sammelanfragen, dass alle Daten (Vektordaten und Nicht-Vektordaten) dauerhaft sind. Wenn eine Anfrage negativ bestätigt wird, gibt es keine Garantie für die Dauerhaftigkeit der Dokumente in dieser Sammelanfrage. Sie sollten solche Anfragen erneut versuchen.
Beispiel für eine Massenindizierung
POST _bulk { "index": { "_index": "my-first-s3vector-index", "_id": "1" } } { "my_vector_1": [1.5, 2.5], "price": 12.2 } { "index": { "_index": "my-first-s3vector-index", "_id": "2" } } { "my_vector_1": [2.5, 3.5], "price": 7.1 } { "index": { "_index": "my-first-s3vector-index", "_id": "3" } } { "my_vector_1": [3.5, 4.5], "price": 12.9 } { "index": { "_index": "my-first-s3vector-index", "_id": "4" } } { "my_vector_1": [5.5, 6.5], "price": 1.2 } { "index": { "_index": "my-first-s3vector-index", "_id": "5" } } { "my_vector_1": [4.5, 5.5], "price": 3.7 }
Dokumente durchsuchen
Sie können Ihren Index mithilfe der _search
Standard-API durchsuchen, um Text-, k-NN- oder Hybridanfragen auszuführen. Bei Abfragen von knn_vector
Feldern, die mit der s3vector
Engine konfiguriert wurden, OpenSearch wird die Abfrage automatisch in den entsprechenden S3-Vektorindex ausgelagert.
Anmerkung
Bei der s3vector
Engine gilt die Aktualisierungssemantik nur für Felder, die die Engine nicht verwendens3vector
. Ihre ausgelagerten Vektordaten sind jedoch s3vector
sofort sichtbar, nachdem ein Dokument erfolgreich indexiert wurde.
Beispiel für eine Suchabfrage
GET my-first-s3vector-index/_search { "size": 2, "query": { "knn": { "my_vector_1": { "vector": [2.5, 3.5], "k": 2 } } } }
Unterstützte Zuordnungsparameter
Mit der s3vector
Engine unterstützt das knn_vector
Feld die folgenden Parameter in den Zuordnungen.
Parameter | Erforderlich | Beschreibung | Unterstützte Werte |
---|---|---|---|
type |
Ja | Der Feldtyp, der im Dokument vorhanden ist. | knn_vector |
dimension |
Ja | Die Dimension jedes Vektors, der in den Index aufgenommen wird. | >0, <=4096 |
space_type |
Nein | Der Vektorraum, der zur Berechnung des Abstands zwischen Vektoren verwendet wird. | l2 , cosinesimil |
method.engine |
Ja | Die ungefähre k-NN-Engine, die für Indizierung und Suche verwendet werden soll. | s3vector |
method.name |
Nein | Die Methode „Nächster Nachbar“ | "" |
Wichtig
Verschachtelte knn_vector
Feldtypen werden von der Engine nicht unterstützt s3vector
Erfassung und Abrechnung
Bis zur Ankündigung der Zählerfassung wird diese Funktion nicht in Rechnung gestellt.
Deaktivierung der s3vector-Engine
Bevor Sie die s3vector
Engine deaktivieren, löschen Sie alle Indizes, die sie derzeit verwenden. Wenn Sie dies nicht tun, schlägt jeder Versuch, die Engine zu deaktivieren, fehl.
Beachten Sie auch, dass die Aktivierung oder Deaktivierung der s3vector
Engine eine blaue/grüne Bereitstellung auf Ihrer Domain auslöst.
Um die s3vector
Engine zu deaktivieren, bearbeiten Sie Ihre Domain-Konfiguration und stellen Sie sie ein. S3VectorsEngine.Enabled:
false