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.
$VectorSearch
Neu ab Version 8.0
Wird von Elastic Cluster nicht unterstützt.
Der $vectorSearch Operator in Amazon DocumentDB ermöglicht Ihnen die Vektorsuche, eine Methode, die beim maschinellen Lernen verwendet wird, um ähnliche Datenpunkte zu finden, indem ihre Vektordarstellungen anhand von Entfernungs- oder Ähnlichkeitsmetriken verglichen werden. Diese Funktion kombiniert die Flexibilität und die umfassenden Abfragen einer JSON-basierten Dokumentendatenbank mit der Leistungsfähigkeit der Vektorsuche und ermöglicht es Ihnen, Anwendungsfälle für maschinelles Lernen und generative KI wie semantische Suche, Produktempfehlungen und mehr zu entwickeln.
Parameter
-
<exact>(optional): Markierung, die angibt, ob die Suche nach dem exakten nächsten Nachbarn (ENN) oder dem ungefähren nächsten Nachbarn (ANN) ausgeführt werden soll. Der Wert kann einer der folgenden sein: -
false — um eine ANN-Suche auszuführen
-
true — um die ENN-Suche auszuführen
Wenn es weggelassen oder auf False gesetzt numCandidates ist, ist es erforderlich.
- `<index>` : Name of the Vector Search index to use. - `<limit>` : Number of documents to return in the results. - `<numCandidates>` (optional): This field is required if 'exact' is false or omitted. Number of nearest neighbors to use during the search. Value must be less than or equal to (<=) 10000. You can't specify a number less than the number of documents to return ('limit'). - `<path>` : Indexed vector type field to search. - `<queryVector>` : Array of numbers that represent the query vector.
Beispiel (MongoDB Shell)
Das folgende Beispiel zeigt, wie der $vectorSearch Operator verwendet werden kann, um ähnliche Produktbeschreibungen auf der Grundlage ihrer Vektordarstellungen zu finden.
Erstellen Sie Beispieldokumente
db.products.insertMany([ { _id: 1, name: "Product A", description: "A high-quality, eco-friendly product for your home.", description_vector: [ 0.2, 0.5, 0.8 ] }, { _id: 2, name: "Product B", description: "An innovative and modern kitchen appliance.", description_vector: [0.7, 0.3, 0.9] }, { _id: 3, name: "Product C", description: "A comfortable and stylish piece of furniture.", description_vector: [0.1, 0.2, 0.4] } ]);
Vektor-Suchindex erstellen
db.runCommand( { createIndexes: "products", indexes: [{ key: { "description_vector": "vector" }, vectorOptions: { type: "hnsw", dimensions: 3, similarity: "cosine", m: 16, efConstruction: 64 }, name: "description_index" }] } );
Beispiel für eine Abfrage
db.products.aggregate([ { $vectorSearch: { index: "description_index", limit: 2, numCandidates: 10, path: "description_vector", queryVector: [0.1, 0.2, 0.3] } } ]);
Ausgabe
[
{
"_id": 1,
"name": "Product A",
"description": "A high-quality, eco-friendly product for your home.",
"description_vector": [ 0.2, 0.5, 0.8 ]
},
{
"_id": 3,
"name": "Product C",
"description": "A comfortable and stylish piece of furniture.",
"description_vector": [ 0.1, 0.2, 0.4 ]
}
]
Codebeispiele
Um ein Codebeispiel für die Verwendung des $vectorSearch Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten: