Auf dieser Seite wird die Vektorsuche und ihre Funktionsweise in Spanner beschrieben.
Die Vektorsuche ist eine leistungsstarke, integrierte Funktion, die semantische Suche und Ähnlichkeitsabgleich für hochdimensionale Vektordaten ermöglicht. Da Vektoreinbettungen direkt in Ihrer transaktionalen Datenbank gespeichert und indexiert werden, sind in Spanner keine separaten Vektordatenbanken und komplexen ETL-Pipelines erforderlich.
Wichtige Konzepte
In diesem Abschnitt werden die folgenden wichtigen Konzepte der Vektorsuche vorgestellt:
- Vektoreinbettungen
- Suchmethoden (KNN und ANN)
- Distanzfunktionen
Vektoreinbettungen
Vektoreinbettungen sind hochdimensionale numerische Darstellungen unstrukturierter Daten. Sie werden aus den unstrukturierten Daten mithilfe von Modellen für maschinelles Lernen generiert. Sie können beispielsweise die Vertex AI Text Embedding API verwenden, um Texteinbettungen für in Spanner gespeicherte Daten zu generieren, zu speichern und zu aktualisieren.
Suchmethoden
Spanner unterstützt zwei Methoden zum Suchen ähnlicher Vektoren:
K-Nearest Neighbors (KNN): Bei dieser Methode wird eine exakte Suche durchgeführt, indem die Distanz zwischen der Anfrage und jedem Vektor im Datensatz berechnet wird. Sie bietet einen genaueren Recall, ist aber für umfangreiche Datasets rechenintensiv.
Approximate Nearest Neighbor (ANN): Diese Methode verwendet einen Vektorindex (basierend auf dem ScaNN-Algorithmus von Google), um schnell Übereinstimmungen in einer großen Anzahl von Vektoren zu finden. Dabei wird ein geringer Verlust an Genauigkeit (Recall) in Kauf genommen, um die Geschwindigkeit und Skalierbarkeit zu verbessern.
Hauptmerkmale
Skalierbarkeit: Unterstützt Milliarden von Vektoren für die nicht partitionierte ANN-Suche oder Billionen von Vektoren für partitionierte KNN-Arbeitslasten.
Einheitliche KI-Datenbank und ‑Engine: Mit der GoogleSQL-Funktion
ML.PREDICToder der PostgreSQL-Funktionspanner.ML_PREDICT_ROWkönnen Sie Einbettungen aus Vertex AI-Modellen direkt in Ihrem Abfragefluss generieren.Inline-Filterung: Kombinieren Sie die Vektorsuche effizient mit Filtern für strukturierte Metadaten (z. B. „Ähnliche Bilder finden, bei denen category = ‚shoes‘ und price < 100“), ohne die Leistung zu beeinträchtigen.
LangChain-Integration: Die integrierte Unterstützung für LangChain ermöglicht es Ihnen, RAG-Anwendungen (Retrieval-Augmented Generation) zu erstellen, bei denen Spanner als Vektorspeicher verwendet wird.
Funktionen für die Hybridsuche
Die Vektorsuche ist am leistungsstärksten, wenn sie mit den anderen Datenfunktionen von Spanner kombiniert wird:
| Kombination | Vorteil |
|---|---|
| Vektorsuche mit SQL-Filterung | Vektorsuche effizient mit Filtern kombinieren (z. B. „Ähnliche Bilder finden, bei denen category = ‚shoes‘ und price < 100“). |
| Vektorsuche + Volltextsuche | Kombinieren Sie semantische Ähnlichkeit mit der Präzision von Keywords mithilfe von Reciprocal Rank Fusion (RRF), um eine höhere Suchrelevanz zu erzielen. |
| Vektor + Graph | Mit der Vektorsuche können Sie relevante Einstiegspunkte (Knoten) in einem Property Graph finden und dann komplexe Beziehungen durchlaufen. |
Nächste Schritte
- Weitere Informationen zu Spanner AI
- Weitere Informationen zum Abrufen von Vertex AI-Texteinbettungen
- Weitere Informationen zum Ausführen von KNN-Suchanfragen
- Weitere Informationen zum Ausführen von ANN-Suchanfragen