Auf dieser Seite wird beschrieben, was die Volltextsuche ist und wie sie funktioniert.
Übersicht
Mit einer Volltextsuche können Sie eine Anwendung erstellen, die eine Tabelle nach einem Wörter, Sätze oder Zahlen zu suchen, anstatt nur nach genauen Übereinstimmungen in strukturierten Feldern. Bei Volltextsuchen werden die neuesten transaktionskonsistenten COMMIT-Daten an Ihre Anwendung zurückgegeben. Spanner Funktionen der Volltextsuche beinhalten auch Rechtschreibkorrekturen, Automatisieren der Spracherkennung von Sucheingaben und der Rangfolge von Suchergebnissen. Spanner erweitert Textsuchen automatisch um ungefähre Wortübereinstimmungen, ohne dass eine zusätzliche Konfiguration erforderlich ist.
Sie müssen für alle Spalten, die für Volltextsuchen verfügbar sein sollen, einen Suchindex erstellen. Spanner analysiert Daten in diesen Spalten, um einzelne Wörter zu identifizieren, die dem Suchindex hinzugefügt werden sollen. Spanner aktualisiert den Suchindex mit neuen oder geänderten Daten, sobald in der Datenbank festgeschrieben wird.
Arten der Volltextsuche
- Einfache Textsuche: Die Suche nach Inhalten erfolgt ganz oder teilweise.
um zuverlässig Ergebnisse zu erhalten. Beispiel für Abfrageprädikate:
- Übereinstimmung mit allen Wörtern [tricolor rat terrier]
- Genaue Wörter oder Wortgruppen ["rat terrier"]
- Jedes dieser Wörter [Miniatur ODER Standard]
- Wort in unmittelbarer Nähe [world AROUND(3) Cup]
- Teilzeichenfolge [start*]
- Numerische Suche: Führt numerische Gleichheits- und Ungleichheitssuchen aus. Bei Gleichheitsabfragen wird eine Zahl verglichen. Bereichs- und Ungleichheitssuchanfragen stimmen überein innerhalb eines bestimmten Bereichs liegt.
- N-Gramm-basierte Suche: Wörter werden mit Rechtschreibvarianten abgeglichen, einschließlich Eigennamen und Namen. Diese Art der Suche hilft auch dabei, den Text der Suchanfrage abzugleichen mit falsch geschriebenen Namen, Namen mit alternativen Schreibweisen und Text mit anderen abweichende Schreibweisen.
- Soundex-Suche: Hier werden ähnlich klingende Wörter gefunden.
Volltextsuchfunktionen
Die Spanner-Volltextsuche bietet die folgenden Funktionen:
- Suchergebnisse mit Rang: Es wird ein Wert berechnet, um abzuschätzen, wie gut eine Suchanfrage ist. stimmt mit einem Dokument überein (z. B. durch Angabe einer höheren Gewichtung für Spalte_A). Verwenden Sie SQL-Ausdrücke, um das Ranking anzupassen.
- Snippets: Der übereinstimmende Text im Suchergebnis wird hervorgehoben.
- Globale Unterstützung: Die Tokenisierung wird in verschiedenen Sprachen, einschließlich CJK Segmentierung. Durch die manuelle Angabe der Sprache können Sie zusätzliche die Feinabstimmung.
- Governance: Findet bestimmte Wörter.
- Rechtschreibkorrektur: Hiermit werden falsch geschriebene Wörter in Suchanfragen automatisch korrigiert, damit sie mit dem korrekt geschriebenen Wort im Speicher übereinstimmen. Wenn zum Beispiel der Parameter nach „girafe“ sucht, werden Dokumente mit „Giraffe“ gefunden.
- Kontextbezogenes Hinzufügen von Synonymen, einschließlich Stoppwörtern: Fügt automatisch kontextrelevante Synonyme verwenden, um die Erinnerung zu verbessern. Beispiel: „das Haus“ stimmt mit „Dieses Haus“ überein und „Katzenbild“ stimmt mit "kitty image" überein.
- Kontextbezogene Zahlenübersetzung in und aus Text: zur numerischen Darstellung und umgekehrt. Für Beispiel: „fünf Katzen“ stimmt mit „5 cats“ überein.
- Automatische Plural-Conversion: entspricht „Katze“ „Katzen“.
Konzepte der Volltextsuche
Bei der Volltextsuche werden die folgenden Schlüsselkonzepte berücksichtigt:
- Ein Dokument bezieht sich auf die durchsuchbaren Daten in einer bestimmten Zeile.
- Ein Token bezieht sich auf jedes Wort eines Dokuments, das in einem Suchindex gespeichert ist.
- Bei der Tokenisierung wird ein Dokument in Tokens aufgeteilt.
- Ein Tokenizer ist eine SQL-Funktion, die für die Tokenisierung verwendet wird.
- Ein umgekehrter Index speichert Tokens. Verwenden Sie SQL-Abfragen, um die umgekehrter Index.
Anwendungsfälle für die Volltextsuche
Sehen wir uns zum besseren Verständnis der Volltextsuche eine E-Mail-Anwendung an, mit der verwendet eine Datenbank, um die E-Mails für jeden Nutzer zu speichern. Jede Zeile entspricht einer einzelnen E-Mail. Jedes „email“ enthält Spalten wie „subject“, „Text“, „Absender“ und „Empfänger“. Die E-Mail-Adresse Volltextsuche, mit der Nutzer ihren Posteingang durchsuchen können, Abfragen in natürlicher Sprache:
- Die Suche unterstützt Abfragen wie
Dallas OR Seattle
. Anwendungen die Endnutzereingabe aus dem Suchfeld direkt in die SQL-SEARCH
(unter Verwendung der rquery-Sprache). - Spanner verwendet Suchindexe, um nach übereinstimmenden Dokumenten zu suchen in verschiedenen Bereichen nutzen. Eine E-Mail-Anwendung könnte beispielsweise Abfrage, um nach "Wichtige Notiz" zu suchen in der Betreffzeile mit „Budget“ im E-Mail-Text und „John“ im Namen des Absenders.
Neben der Volltextsuche werden Suchindexe noch vielfältig eingesetzt, z. B. Folgendes:
Elemente in Arrayspalten indexieren. Stellen Sie sich eine Anwendung vor, Array-Spalte zum Speichern der mit einem Artikel verknüpften Tags. Mit Suchindexen kann die Anwendung effizient nach Zeilen suchen, die einem bestimmten Tag. Weitere Informationen finden Sie unter Array-Tokenisierung
Daten finden, die sich in der Schnittmenge einer Menge befinden von Abfragebedingungen. Sie können beispielsweise einen beliebigen Satz von Attributen verwenden. (Farbe, Größe, Marke, Bewertung usw.), um in einem Katalog.
Numerische Suchbedingungen allein oder in Kombination mit Volltext . Einige Beispiele für Fälle, in denen ein Suchindex für numerische Suchanfragen:
- In Kombination mit einer Volltextanwendung Um beispielsweise eine E-Mail mit dem Betreff Bild und einer Größe von mehr als 1 MB.
- Wenn sie Teil einer Schnittmenge von Bedingungen ist, die zuvor beschrieben wurden.
Beispiel: Sie möchten Produkte finden, bei denen
color = "yellow" AND size = 14 AND rating >= 4.5
. - Bei der Suche nach der Schnittmenge numerischer Spalten Für
Stellen Sie sich eine Tabelle mit Start- und Endzeiten der Ereignisse vor. Suche
können mit Indexen effizient Abfragen implementieren, die nach Ereignissen suchen,
zu einem bestimmten Zeitpunkt stattgefunden haben:
start_time <= @p AND end_time > @p
.
Schritte für die Volltextsuche
In Spanner sind für die Volltextsuche folgende Schritte erforderlich:
- Dokument mit dem Spanner-Tokenizer tokenisieren
wie z. B.
TOKENIZE_SUBSTRING
. Weitere Informationen finden Sie unter Tokenisierung. - Erstellen Sie mithilfe der Methode
CREATE SEARCH INDEX
DDL-Anweisung. Weitere Informationen finden Sie unter Indexe durchsuchen - Dokumente im Suchindex mit Spanner abfragen
SEARCH
. Weitere Informationen finden Sie unter Abfrageübersicht. - Ergebnisse der Abfrage mit Spanner einstufen
SCORE
. Weitere Informationen finden Sie unter Suchergebnisse ranken.
Beschränkungen
- Die Volltextsuche unterstützt keine Assured Workloads.
Preise
Für die Nutzung fallen keine zusätzlichen Kosten durch Spanner an. Volltextsuche zu erstellen, obwohl die Implementierung der Volltextsuche höhere Kosten, da zusätzliche Rechen- und Speicherressourcen erforderlich sind.
Weitere Informationen finden Sie unter Spanner-Preise.
Nächste Schritte
- Tokenisierung und Spanner-Tokenizer
- Weitere Informationen zu Suchindexen
- Weitere Informationen zu Volltextsuchanfragen