Volltextsuche – Übersicht

Auf dieser Seite wird beschrieben, was eine Volltextsuche ist und wie sie funktioniert.

Mit einer Volltextsuche können Sie eine Anwendung erstellen, mit der in einer Tabelle nach Wörtern, Wortgruppen oder Zahlen gesucht werden kann, anstatt nur nach genauen Übereinstimmungen in strukturierten Feldern. Bei Volltextsuchen werden die neuesten transaktionskonsistenten COMMIT-Daten an Ihre Anwendung zurückgegeben. Die Volltextsuche von Spanner umfasst auch Rechtschreibkorrekturen, die automatische Spracherkennung der Suchanfrage und das Ranking der Suchergebnisse. Spanner erweitert Textsuchen automatisch um ungefähre Wortübereinstimmungen.

Sie müssen für alle Spalten, die für Volltextsuchen verfügbar sein sollen, einen Suchindex erstellen. Spanner analysiert die 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 sie in der Datenbank verbindlich gemacht wurden.

  • Grundlegende Textsuche: Es wird nach Inhalten gesucht, die ein ganzes Wort oder einen Teil eines Wortes oder einer Wortgruppe enthalten, um zuverlässige Ergebnisse zu erhalten. Beispiel für Prädikate in Abfragen:
    • Stimmt mit allen Wörtern überein [glatthaar foxterrier dreifarbig]
    • Genaue Wörter oder Wortgruppen ["rat terrier"]
    • Mindestens eines dieser Wörter enthalten: [miniature ODER standard]
    • Wort in unmittelbarer Nähe [welt BEI(3) tasse]
    • Teilstring [start*]
  • Numerische Suche: Hiermit können Sie nach numerischer Gleichheit und Ungleichheit suchen. Bei Gleichheitsabfragen wird eine Zahl verglichen. Bei Suchanfragen mit Bereich und Ungleichheit wird eine Zahl innerhalb eines bestimmten Bereichs abgeglichen.
  • N-Gramm-basierte Suche: Wörter werden mit Rechtschreibvarianten abgeglichen, einschließlich Eigennamen und Namen. Diese Art der Suche hilft auch, Suchtext mit falsch geschriebenen Namen, Namen mit alternativen Schreibweisen und Text mit anderen Schreibvarianten abzugleichen.
  • Soundex-Suche: Hier werden ähnlich klingende Wörter gefunden.

Funktionen der Volltextsuche

Die Spanner-Volltextsuche bietet folgende Funktionen:

  • Sortierte Suchergebnisse: Es wird eine Punktzahl berechnet, um zu ermitteln, wie gut eine Suchanfrage mit einem Dokument übereinstimmt. Dabei wird beispielsweise column_A eine höhere Gewichtung gegeben. Verwenden Sie SQL-Ausdrücke, um das Ranking anzupassen.
  • Snippets: Der übereinstimmende Text wird im Suchergebnis hervorgehoben.
  • Globale Unterstützung: Unterstützt automatisch die Tokenisierung in verschiedenen Sprachen, einschließlich der CJK-Segmentierung. Wenn Sie die Sprache manuell festlegen, können Sie eine zusätzliche Feinabstimmung vornehmen.
  • Verwaltung: Hiermit werden alle Vorkommen bestimmter Wörter gefunden.
  • Rechtschreibkorrektur: Falsch geschriebene Wörter in Suchanfragen werden automatisch korrigiert, damit sie mit dem korrekt geschriebenen Wort im Speicher übereinstimmen. Wenn der Nutzer beispielsweise nach „Giraffe“ sucht, werden Dokumente mit „Giraffe“ gefunden.
  • Hinzufügen von kontextbezogenen Synonyme, einschließlich Stoppwörtern: Es werden automatisch kontextbezogene Synonyme hinzugefügt, um die Trefferquote zu erhöhen. Beispiel: „das Haus“ stimmt mit „dieses Haus“ überein und „Katze Bild“ mit „Kätzchen Bild“.
  • Kontextbezogene Umwandlung von Zahlen in Text und umgekehrt: Hier wird die Textversion einer Zahl mit der numerischen Darstellung abgeglichen und umgekehrt. Beispiel: „fünf Katzen“ stimmt mit „5 Katzen“ überein.
  • Automatische Pluralbildung: „Katze“ wird mit „Katzen“ abgeglichen.

Konzepte der Volltextsuche

Die Volltextsuche umfasst die folgenden Hauptkonzepte:

  • Ein Dokument bezieht sich auf die suchbaren 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 unterteilt.
  • Ein Tokenisierer ist eine SQL-Funktion, die für die Tokenisierung verwendet wird.
  • In einem Invertierten Index werden Tokens gespeichert. Mit SQL-Abfragen im Inverted Index suchen

Um die Volltextsuche zu verstehen, sehen wir uns eine Anwendung an, in der Lieder für jeden Sänger in einer Datenbank gespeichert werden. Jede Zeile steht für einen einzelnen Titel. Jeder Song enthält Spalten wie Titel, Text, Sänger und Album. Die Anwendung verwendet die Volltextsuche, damit Nutzer mit Suchanfragen in natürlicher Sprache nach einem Song suchen können:

  • Die Suche unterstützt Abfragen mit dem Operator OR, z. B. Prince OR Camille. Anwendungen können die Eingaben der Endnutzer aus dem Suchfeld direkt in die SQL-Funktion SEARCH einspeisen (mithilfe der Abfragesyntax).
  • Spanner verwendet Suchindexe, um in verschiedenen Feldern nach übereinstimmenden Dokumenten zu suchen. Eine Anwendung kann beispielsweise eine Abfrage stellen, um nach „Weinen“ im Titel, „So kalt“ im Text und „Prince“ als Sänger zu suchen.

Weitere Verwendungsmöglichkeiten für Suchindexe

Suchindexe haben neben der Volltextsuche noch eine Vielzahl weiterer Einsatzmöglichkeiten, z. B.:

  • Indexierung von Elementen in Arrayspalten. Angenommen, in einer Anwendung werden mithilfe einer Array-Spalte Tags gespeichert, die mit einem Artikel verknüpft sind. Mit Suchindexen kann die Anwendung Zeilen mit einem bestimmten Tag effizient abrufen. Weitere Informationen finden Sie unter Array-Tokenisierung.

  • Daten finden, die sich in der Schnittmenge mehrerer Abfragebedingungen befinden Sie können beispielsweise eine beliebige Kombination von Attributen (Farbe, Größe, Marke, Bewertung usw.) verwenden, um in einem Katalog nach einem Produkt zu suchen.

  • Verwendung numerischer Suchbedingungen, einzeln oder in Kombination mit Volltextbedingungen Hier einige Beispiele dafür, wann ein Suchindex für numerische Suchanfragen nützlich ist:

    • In Kombination mit einer Volltextanwendung Beispiel: Sie möchten eine E-Mail mit dem Betreff Bild und einer Größe von mehr als 1 MB finden.
    • Wenn es Teil einer zuvor beschriebenen Überschneidung von Bedingungen ist. Beispiel: Sie möchten Produkte finden, bei denen color = "yellow" AND size = 14 AND rating >= 4.5.
    • Bei der Suche nach dem Schnittpunkt von numerischen Spalten. Angenommen, eine Tabelle enthält den Beginn und das Ende von Terminen. Mit Suchindexen lässt sich eine Abfrage effizient implementieren, mit der nach Ereignissen gesucht wird, die zu einem bestimmten Zeitpunkt stattgefunden haben: start_time <= @p AND end_time > @p.

    Weitere Informationen finden Sie unter Numerische Indexe.

Schritte für die Volltextsuche

Für die Volltextsuche in Spanner sind die folgenden Schritte erforderlich:

  1. Tokenisieren Sie ein Dokument mit den Spanner-Tokenisierungsfunktionen wie TOKENIZE_SUBSTRING. Weitere Informationen finden Sie unter Tokenisierung.
  2. Erstellen Sie mit der DDL-Anweisung CREATE SEARCH INDEX einen Suchindex, um die Tokens zu speichern. Weitere Informationen finden Sie unter Suchindexe.
  3. Dokumente im Suchindex mit der Spanner-Funktion SEARCH abfragen Weitere Informationen finden Sie unter Abfragen.
  4. Die Ergebnisse der Abfrage mit der Spanner-Funktion SCORE ranken. Weitere Informationen finden Sie unter Suchergebnisse ranken.

Beschränkungen

Preise

Für die Verwendung der Volltextsuche fallen keine zusätzlichen Spanner-Gebühren an. Die Implementierung der Volltextsuche erhöht jedoch die Kosten, da zusätzliche Rechen- und Speicherressourcen erforderlich sind.

Weitere Informationen finden Sie unter Spanner-Preise.

Nächste Schritte