Übersicht über die Volltextsuche

Volltextabfragen führen linguistische Suchvorgänge in den Textdaten von Volltextindizes aus, indem sie nach den Regeln einer bestimmten Sprache, wie z. B. Englisch oder Japanisch, Wörter und Ausdrücke verarbeiten. Volltextabfragen können einfache Wörter und Ausdrücke oder mehrere Formen eines Worts bzw. Ausdrucks enthalten.

Volltextsuchen können in einer Vielzahl von Geschäftsszenarios eingesetzt werden: Im E-Business für das Suchen von Elementen auf einer Website, in Anwaltskanzleien zum Suchen von früheren Fällen in einem juristischen Datenrepository oder in der Personalabteilung, um Stellenbeschreibungen mit gespeicherten Lebensläufen abzugleichen. Die grundlegenden Aufgaben bei der Administration und Entwicklung von Volltextsuchen sind unabhängig vom jeweiligen Geschäftsszenario. Volltextindizes und -abfragen können jedoch zur Leistungsoptimierung und besseren Erfüllung der Geschäftsziele an spezielle Geschäftsszenarios angepasst werden. Beispielsweise kann im E-Business eine optimale Leistung vorrangig sein vor einer exakten Gewichtung (Rangfolgensortierung) und der Genauigkeit der Ergebnisse (wie viele der möglichen Übereinstimmungen tatsächlich von einer Volltextabfrage zurückgegeben werden) oder vor der Unterstützung mehrerer Sprachen. In einer Anwaltskanzlei kann es hingegen von größter Wichtigkeit sein, alle möglichen Übereinstimmungen (Rückgabe des Gesamtrückrufe aller Informationen) einer Abfrage zu erhalten.

Übersicht über die Konfiguration einer Datenbank für die Volltextsuche

In jedem Szenario führt ein Datenbankadministrator die folgenden grundlegenden Schritte zur Konfiguration der Tabellenspalten in einer Datenbank für die Volltextsuche aus:

  1. Erstellen Sie einen Volltextkatalog.

  2. Erstellen Sie einen Volltextindex für jede Tabelle, die durchsucht werden soll:

    1. Identifizieren Sie jede Textspalte, die in den Volltextindex aufgenommen werden soll.

    2. Wenn eine bestimmte Spalte Dokumente enthält, die als Binärdaten gespeichert sind (Daten vom Typ varbinary, varbinary(max) oder image), müssen Sie eine Tabellenspalte angeben (die Typspalte), die den Typ jedes Dokuments in der indizierten Spalte identifiziert.

    3. Geben Sie die Sprache an, die die Volltextsuche für die Dokumente in der Spalte verwenden soll.

    4. Wählen Sie den gewünschten Mechanismus für die Änderungsnachverfolgung aus, der für den Volltextindex zum Nachverfolgen von Änderungen in der Basistabelle und an den Spalten der Tabelle verwendet werden soll.

Die Volltextsuche unterstützt mehrere Sprachen durch die Verwendung der folgenden linguistischen Komponenten: Wörtertrennungen und Wortstammerkennung, Stopplisten mit Stoppwörtern (auch bezeichnet als Füllwörter) und Thesaurusdateien. Thesaurusdateien und ggf. auch die Stopplisten erfordern eine Konfiguration durch den Datenbankadministrator. Eine einzelne Thesaurusdatei unterstützt alle Volltextindizes, die die entsprechende Sprache verwenden. Eine einzelne Stoppliste kann beliebig vielen Volltextindizes zugeordnet werden.

Weitere Informationen finden Sie unter Verwalten der Volltextsuche.

Übersicht über Volltextabfragen

Nachdem die gewünschten Spalten zu einem Volltextindex hinzugefügt wurden, können Anwendungen und Benutzer Volltextabfragen in den Texten der Spalten ausführen. Diese Abfragen können folgende Suchmuster verwenden:

  • Mindestens ein Wort oder Ausdruck (einfacher Begriff)

  • Ein Wort oder Ausdruck, bei dem die Wörter mit dem angegebenen Text beginnen (Präfixbegriff)

  • Flexionsformen eines bestimmten Worts (Generierungsbegriff)

  • Ein Wort oder Ausdruck in der Nähe eines anderen Worts oder Ausdrucks (NEAR-Begriff)

  • Synonyme Formen eines bestimmten Worts (Thesaurus).

  • Wörter oder Ausdrücke mit gewichteten Werten (gewichteter Begriff)

Alle Volltextabfragen verwenden einige Transact-SQL-Prädikate (CONTAINS und FREETEXT) und -Funktionen (CONTAINSTABLE und FREETEXTTABLE). Die Vorgaben für das gewünschte Suchziel in einem Geschäftsszenario beeinflussen jedoch, welche Struktur letztendlich für Volltextabfragen bevorzugt wird:

  • E-Business – Suche nach einem Produkt auf einer Website:

    SELECT product_id FROM products WHERE CONTAINS(product_description, ”Snap Happy 100EZ” OR FORMSOF(THESAURUS,’Snap Happy’) OR ‘100EZ’) AND product_cost<200 …
    
  • Einstellungsszenario – Suche nach Bewerbern, die Erfahrung mit SQL Server haben:

    SELECT candidate_name,SSN FROM candidates WHERE CONTAINS(candidate_resume,”SQL Server”) AND candidate_division =DBA
    

Weitere Informationen finden Sie unter Abfragen von SQL Server mithilfe der Volltextsuche.

Vergleich zwischen LIKE und der Volltextsuche

Im Gegensatz zur Volltextsuche verarbeitet das LIKE-Transact-SQL-Prädikat ausschließlich Zeichenmuster. Darüber hinaus können Sie mit dem LIKE-Prädikat keine formatierten Binärdaten abfragen. Eine LIKE-Abfrage in einem großen unstrukturierten Text ist sehr viel langsamer als eine entsprechende Volltextabfrage in denselben Daten. Eine LIKE-Abfrage für Millionen von Zeilen von Textdaten kann Minuten in Anspruch nehmen; eine Volltextabfrage kann dagegen in Sekunden oder weniger für dieselben Daten ein Ergebnis liefern, je nach Anzahl der zurückgegebenen Zeilen.