AlloyDB Omni unterstützt alle Funktionen und Möglichkeiten der Volltextsuche, einschließlich der Unterstützung für GIN- und GiST-Indexe.
Wichtige Konzepte der Volltextsuche
Um die Volltextsuche effektiv zu implementieren, sollten Sie wissen, wie PostgreSQL Text verarbeitet und durchsucht. Die Sucheinheit, ein Dokument, ist in der Regel eine Textspalte oder eine Kombination von Spalten aus einer Zeile. Beim Erstellen des Index wird dieses Dokument geparst, um Wörter (oder Lexeme, die Grundform eines Worts) mit der Zeile zu verknüpfen.
Dieser Prozess umfasst eine Vorverarbeitungs-Pipeline, die Rohtext in ein durchsuchbares Format umwandelt. Dazu wird Folgendes ausgeführt:
- Text in Tokens aufteilen.
- Häufig verwendete Stoppwörter entfernen.
- Wörter auf ihre Grundform normalisieren. „laufen“ ist beispielsweise das Lexem für „laufen“, „läuft“ und „lief“.
Für die Verwendung der Volltextsuche müssen Sie auch spezielle Datentypen, Operatoren und verschiedene Indexierungsstrategien kennen, einschließlich der integrierten PostgreSQL Indexe und der leistungsstarken RUM Indexe.
PostgreSQL verwendet zwei primäre Datentypen und einen Abgleichoperator, um die Volltextsuche zu verwalten:
tsvector: Stellt ein Dokument in einem durchsuchbaren Format dar, nämlich als sortierte Liste eindeutiger Lexeme.tsquery: Stellt Suchbegriffe dar, einschließlich boolescher Operatoren, mit denen Sie Lexeme kombinieren können.@@: Prüft, ob eintsvectormit einemtsqueryübereinstimmt, und ermöglicht so sprachlich bewusste Suchvorgänge.
AlloyDB Omni unterstützt alle Indexarten für die Volltextsuche, die von der integrierten PostgreSQL-Funktion unterstützt werden. Die Wahl des Index hängt vom Gleichgewicht zwischen Suchgeschwindigkeit, Indexerstellungszeit, Aktualisierungsgeschwindigkeit und den spezifischen Suchfunktionen ab, die erforderlich sind, z. B. die Suche nach Wortgruppen oder die Relevanzbewertung.
Weitere Informationen zum Erstellen und Verwenden von RUM-Indexen in AlloyDB Omni finden Sie unter RUM-Index erstellen und verwalten.
Volltext- und semantische Suche kombinieren
Bei den leistungsstärksten Suchimplementierungen werden häufig die Volltextsuche mit RUM-Indexen und die Vektorsuche kombiniert. Verwenden Sie die Hybridsuche, um die Vorteile des semantischen Verständnisses und des genauen Abgleichs von Suchbegriffen zu nutzen und die unterschiedlichen Ergebnismengen für ein umfassendes Ranking zusammenzuführen.
In einer E-Commerce-Anwendung können Sie beispielsweise zuerst die Volltextsuche mit RUM verwenden, um Produkte zu finden, die bestimmte Suchbegriffe wie „Laufschuhe“ enthalten. Mit der Vektorsuche können Sie dann Ergebnisse basierend auf der semantischen Ähnlichkeit mit einer detaillierteren Abfrage eines Nutzers finden, z. B. „bequeme Schuhe für das Langstreckentraining“. Die Datenbank führt dann die bewerteten Ergebnisse aus beiden Suchkomponenten mit dem Algorithmus „Reciprocal Rank Fusion“ (RRF) zu einer einzigen, einheitlichen Liste zusammen, um ein endgültiges Ranking zu erstellen.
Weitere Informationen zur Verwendung dieses Hybridansatzes finden Sie unter Hybride Suche nach Vektorähnlichkeiten ausführen.
Nächste Schritte
- Informationen zum Erstellen und Verwalten eines RUM-Index
- Informationen zum Ausführen einer hybriden Suche nach Vektorähnlichkeiten.