Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

k-Nearest Neighbor (k-NN) -Suche in Amazon Service OpenSearch

Fokusmodus
k-Nearest Neighbor (k-NN) -Suche in Amazon Service OpenSearch - OpenSearch Amazon-Dienst

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.

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.

k-NN für Amazon OpenSearch Service ist die Abkürzung für den zugehörigen k-Nearest Neighbors-Algorithmus und ermöglicht es Ihnen, nach Punkten in einem Vektorraum zu suchen und die „nächsten Nachbarn“ für diese Punkte anhand der euklidischen Entfernung oder der Kosinusähnlichkeit zu finden. Anwendungsfälle umfassen Empfehlungen (z. B. eine Funktion „andere Songs, die Ihnen vielleicht gefallen“ in einer Musikanwendung), Bilderkennung und Betrugserkennung.

Anmerkung

Diese Dokumentation beschreibt die Versionskompatibilität zwischen OpenSearch Service und verschiedenen Versionen des k-NN-Plug-ins sowie Einschränkungen bei der Verwendung des Plug-ins mit Managed Service. OpenSearch Eine umfassende Dokumentation des k-NN-Plug-ins, einschließlich einfacher und komplexer Beispiele, Parameterverweise und der vollständigen API Referenz für das Plugin, finden Sie in der OpenSearch Open-Source-Dokumentation. Die Open-Source-Dokumentation behandelt auch Leistungsoptimierung und k-NN-specific Cluster-Einstellungen.

Verwenden Sie die folgenden Tabellen, um die Version des k-NN-Plug-ins zu finden, das auf Ihrer Amazon OpenSearch Service-Domain läuft. Jede k-NN-Plug-in-Version entspricht einer OpenSearchoder Elasticsearch-Version.

OpenSearch
OpenSearch Version k-NN-Plug-In-Version Nennenswerte Funktionen
2.13 2.13.0.0

2.11 2.11.0.0

Unterstützung für ignore_unmapped In-k-NN-Abfragen hinzugefügt

2.9 2.9.0.0 Implementierung von k-NN-Byte-Vektoren und effizientem Filtern mit der Faiss-Engine
2.7 2.7.0.0
2.5 2.5.0.0 Erweitert SystemIndexPlugin für den k-NN-Modellsystemindex, Lucene-spezifische Dateierweiterungen zum Kern von HybridFS hinzugefügt
2.3 2.3.0.0
1.3 1.3.0.0
1.2 1.2.0.0 Unterstützung für Faiss-Bibliothek hinzugefügt
1.1 1.1.0.0
1,0

1.0.0.0

Umbenannt RESTAPIs, wobei die Abwärtskompatibilität unterstützt wurde, der Namespace wurde umbenannt von bis opendistro opensearch
Elasticsearch
Elasticsearch-Version k-NN-Plug-In-Version Nennenswerte Funktionen
7.1

1.3.0.0

Euklidische Entfernung
7.4

1.4.0.0

7.7

1.8.0.0

Kosinusähnlichkeit
7.8

1.9.0.0

7.9

1.11.0.0

AufwärmenAPI, benutzerdefinierte Punktewertung

7.10

1.13.0.0

Hamming-Distanz, L1-Norm-Distanz und Painless-Scripting

Erste Schritte mit k-NN

Um k-NN zu verwenden, müssen Sie einen Index mit der index.knn-Einstellung erstellen und mindestens ein Feld des knn_vector-Datentyps hinzufügen.

PUT my-index { "settings": { "index.knn": true }, "mappings": { "properties": { "my_vector1": { "type": "knn_vector", "dimension": 2 }, "my_vector2": { "type": "knn_vector", "dimension": 4 } } } }

Der knn_vector-Datentyp unterstützt eine einzelne Liste von bis zu 10.000 Gleitkommazahlen, wobei die Anzahl der Gleitkommazahlen durch den erforderlichen dimension-Parameter definiert wird. Nachdem Sie den Index erstellt haben, fügen Sie ihm einige Daten hinzu.

POST _bulk { "index": { "_index": "my-index", "_id": "1" } } { "my_vector1": [1.5, 2.5], "price": 12.2 } { "index": { "_index": "my-index", "_id": "2" } } { "my_vector1": [2.5, 3.5], "price": 7.1 } { "index": { "_index": "my-index", "_id": "3" } } { "my_vector1": [3.5, 4.5], "price": 12.9 } { "index": { "_index": "my-index", "_id": "4" } } { "my_vector1": [5.5, 6.5], "price": 1.2 } { "index": { "_index": "my-index", "_id": "5" } } { "my_vector1": [4.5, 5.5], "price": 3.7 } { "index": { "_index": "my-index", "_id": "6" } } { "my_vector2": [1.5, 5.5, 4.5, 6.4], "price": 10.3 } { "index": { "_index": "my-index", "_id": "7" } } { "my_vector2": [2.5, 3.5, 5.6, 6.7], "price": 5.5 } { "index": { "_index": "my-index", "_id": "8" } } { "my_vector2": [4.5, 5.5, 6.7, 3.7], "price": 4.4 } { "index": { "_index": "my-index", "_id": "9" } } { "my_vector2": [1.5, 5.5, 4.5, 6.4], "price": 8.9 }

Dann können Sie die Daten mit dem knn-Abfragetyp durchsuchen.

GET my-index/_search { "size": 2, "query": { "knn": { "my_vector2": { "vector": [2, 3, 5, 6], "k": 2 } } } }

In diesem Fall ist k die Anzahl der Nachbarn, die die Abfrage zurückgeben soll, aber Sie müssen auch die size-Option einschließen. Andernfalls erhalten Sie k-Ergebnisse für jeden Shard (und jedes Segment) anstatt k-Ergebnisse für die gesamte Abfrage. k-NN unterstützt einen maximalen k-Wert von 10 000.

Wenn Sie die knn-Abfrage mit anderen Klauseln mischen, erhalten Sie möglicherweise weniger als k-Ergebnisse. In diesem Beispiel reduziert die post_filter-Klausel die Anzahl der Ergebnisse von 2 auf 1.

GET my-index/_search { "size": 2, "query": { "knn": { "my_vector2": { "vector": [2, 3, 5, 6], "k": 2 } } }, "post_filter": { "range": { "price": { "gte": 6, "lte": 10 } } } }

Wenn Sie eine große Anzahl von Abfragen bearbeiten und gleichzeitig eine optimale Leistung beibehalten müssen, können Sie den verwenden, um eine Sammelsuche mit einer einzigen Anfrage _msearchAPIzu erstellen JSON und eine einzelne Anfrage zu senden, um mehrere Suchvorgänge durchzuführen:

GET _msearch { "index": "my-index"} { "query": { "knn": {"my_vector2":{"vector": [2, 3, 5, 6],"k":2 }} } } { "index": "my-index", "search_type": "dfs_query_then_fetch"} { "query": { "knn": {"my_vector1":{"vector": [2, 3],"k":2 }} } }

Das folgende Video zeigt, wie Sie Massenvektorsuchen für K-NN-Abfragen einrichten.

k-NN-Unterschiede, -Optimierung und -Einschränkungen

OpenSearch ermöglicht es Ihnen, alle k-NN-Einstellungen mit dem _cluster/settings API zu ändern. Bei OpenSearch Service können Sie alle Einstellungen außer knn.memory.circuit_breaker.enabled und ändernknn.circuit_breaker.triggered. k-NN-Statistiken sind als CloudWatch Amazon-Metriken enthalten.

Vergleichen Sie insbesondere die KNNGraphMemoryUsage Metrik auf jedem Datenknoten mit der knn.memory.circuit_breaker.limit Statistik und den RAM für den Instance-Typ verfügbaren Werten. OpenSearch Der Service verwendet die Hälfte einer Instanz RAM für den Java-Heap (bis zu einer Heap-Größe von 32 GiB). Standardmäßig verwendet k-NN bis zu 50% der verbleibenden Hälfte, sodass ein Instance-Typ mit 32 GiB 8 GiB an Graphen (32 * 0,5 * 0,5) aufnehmen RAM kann. Die Leistung kann beeinträchtigt werden, wenn die Nutzung des Graphen-Speichers diesen Wert überschreitet.

Sie können einen in Version 2.x oder höher erstellten k-NN-Index zu UltraWarmoder Cold Storage auf einer Domain mit Version 2.17 oder höher migrieren.

Clear-Cache-API und Warmup-APIs für k-NN-Indizes sind für warme Indizes blockiert. Wenn die erste Abfrage für den Index initiiert wird, werden die Grafikdateien von Amazon S3 heruntergeladen und das Diagramm in den Speicher geladen. In ähnlicher Weise werden die Dateien automatisch aus dem Speicher entfernt, wenn die Gültigkeitsdauer für die Diagramme abgelaufen TTL ist.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.