Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Vektorsuche "Exact Nearest Neighbor" (ENN) führt eine vollständige Entfernungsberechnung über alle indizierten Vektoren durch, um den Abruf der nächstgelegenen Nachbarn basierend auf einer angegebenen Entfernungsmetrik zu gewährleisten. ENN wird auf allen Clusterebenen ohne zusätzliche Kosten unterstützt und erfordert keine Registrierung.
Was ist die exakte Nearest Neighbor (ENN) Vektorsuche?
Die ENN-Vektorsuche führt einen umfassenden Vergleich zwischen dem Abfragevektor und jedem Vektor im Dataset durch. Dieser Ansatz stellt Folgendes sicher:
- Garantierte Genauigkeit: Ruft die wahren nächsten Nachbarn gemäß der gewählten Entfernungsmetrik ab (z. B. Euklidischer Abstand, Kosinus-Ähnlichkeit).
- Erhöhte Rechenlast: Aufgrund seiner erschöpfenden Natur ist ENN ressourcenintensiver und kann zu längeren Abfragezeiten führen, insbesondere bei großen Datasets.
Umgekehrt verwendet die Approximate Nearest Neighbor (ANN) Suche Indizierungstechniken wie Hierarchical Navigable Small World (HNSW), Inverted File (IVF) oder DiskANN, um Suchvorgänge zu beschleunigen. Während ANN schnellere Reaktionszeiten und bessere Skalierbarkeit bietet, liefert es möglicherweise nicht immer die wirklich nächsten Nachbarn.
Wann sollten Sie die ENN-Vektorsuche verwenden?
Erwägen Sie die Verwendung der ENN-Vektorsuche in den folgenden Szenarien:
- Hohe Genauigkeitsanforderungen: Für Anwendungen, bei denen präzise Top-k-Ergebnisse kritisch sind – z. B. sensible Empfehlungssysteme oder wissenschaftliche Forschung – sorgt ENN für maximale Genauigkeit.
- Verwaltbare Datasetgröße: Beim Umgang mit kleineren Datasets oder wenn Leistungseinschränkungen weniger streng sind, ist die erschöpfende Natur von ENN machbar.
- Geringe Auswahlfilterung: Wenn Filter angewendet werden, die zu einer relativ kleinen Teilmenge von Daten führen, kann ENN vollständige Vergleiche innerhalb dieser Teilmenge effizient durchführen.
Beispiel: In einem großen Dataset mit Millionen von Dokumenten, die nach Mandanten kategorisiert sind, kann das Ausführen einer Vektorsuche innerhalb eines bestimmten Mandanten (bestehend aus ein paar tausend Vektoren) von ENN effektiv behandelt werden.
Verwenden der ENN-Vektorsuche
Stellen Sie vor der Verwendung der ENN-Vektorsuche sicher, dass für den relevanten Pfad ein Vektorindex (z. B. IVF, HNSW, DiskANN) erstellt wird. Wenn bereits ein Vektorindex vorhanden ist, muss er beim Wechseln zwischen Suchmethoden nicht neu erstellt werden, da ENN während der Abfrageausführung unabhängig von diesen Indizes arbeitet.
Um ENN zu aktivieren, legen Sie in Ihrer Abfrage fest "exact": true . Beispiel:
{
"$search": {
"cosmosSearch": {
"path": "myVectorField",
"exact": true, // Enables ENN
"query": [0.2, 0.4, 0.9], // Query vector
"k": 10, // Number of results to return
"filter": {
"tenant_id": { "$eq": "tenant123" }
}
}
}
}
Kombinieren der ENN-Vektorsuche mit Filtern
Die ENN-Vektorsuche kann mit Attribut- oder Geospatialfiltern kombiniert werden, um den Suchbereich auf eine bestimmte Teilmenge von Daten einzugrenzen. Nach dem Anwenden des Filters führt die Suchmaschine vollständige Entfernungsberechnungen für die gefilterte Teilmenge durch, wobei die nächstgelegenen Top-k-Nachbarn zurückgegeben werden, die den Filterkriterien entsprechen.
Anwendungsfallszenario
Ein Client verwaltet eine Sammlung von ca. 300.000 Dokumenten, die jeweils ein Vektorfeld, ein tenant_id Feld (die Tausende von Mandanten darstellen) und andere Attribute enthalten. Sie beobachteten, dass ANN-Vektorsuchen mit einem tenant_id Filter langsam waren.
Durch den Wechsel zur ENN-Vektorsuche bei gleichzeitiger Beibehaltung desselben Filters erzielte der Client eine Verbesserung der Abfrageleistung von 50% und erreichte 100% Rückrufgenauigkeit.
FAQs
Wie funktioniert ENN bei großer Skalierung?
- Leistung für große Datasets: ENN kann für große Datasets langsamer sein, ohne selektive Filterung aufgrund der Notwendigkeit, jeden Vektor auszuwerten.
- Höhere Rechenkosten: ENN umfasst den Vergleich des Abfragevektors mit allen (oder gefilterten) Vektoren, was zu einer erhöhten Ressourcenauslastung für ein großes Dataset führt.
ANN vs ENN: Was ist der Unterschied?
- Die Genaue Nächste Benachbarte (ENN)-Vektorsuche bietet 100% Genauigkeit, indem der Abfragevektor vollständig mit allen indizierten Vektoren verglichen wird, wodurch sie für Anwendungen geeignet ist, die präzise Ergebnisse erfordern oder wenn es um kleinere Datasets oder gefilterte Teilmengen geht.
- Die näherste Nachbarsuche (ANN) verwendet spezielle Indizierungstechniken, um schnellere Antworten und eine bessere Skalierbarkeit für große Datasets bereitzustellen, obwohl die Genauigkeit leicht beeinträchtigt werden kann.