Abfragen mit Volltextsuche

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Verwenden Sie zum Schreiben von Volltextabfragen die Prädikate CONTAINS und FREETEXT und die Rowsetwertfunktionen CONTAINSTABLE und FREETEXTTABLE mit einer SELECT-Anweisung. Dieser Artikel enthält Beispiele für jedes Prädikat und jede Funktion und hilft Ihnen dabei, das beste Prädikat bzw. die beste Funktion auszuwählen.

  • Verwenden Sie CONTAINS und CONTAINSTABLE, um Wörter und Ausdrücke zuzuordnen.
  • Verwenden Sie FREETEXT und FREETEXTTABLE,um eine Bedeutung, aber keinen genauen Wortlaut zuzuordnen.

Beispiele für jedes Prädikat und jede Funktion

In den folgenden Beispielen wird die Beispieldatenbank Adventure Works verwendet. Informationen zum endgültigen Release von Adventure Works finden Sie unter Adventure Works Databases and Scripts for SQL Server 2016 CTP3 (Adventure Works-Datenbanken und -Skripte für SQL Server 2016 CTP3). Sie müssen zusätzlich die Volltextsuche einrichten, um die Beispielabfragen auszuführen. Weitere Informationen finden Sie unter Erste Schritte mit der Volltextsuche.

Beispiel - CONTAINS

Im folgenden Beispiel werden alle Produkte mit einem Preis von $80.99 gesucht, die das Wort "Mountain" enthalten:

USE AdventureWorks2022  
GO  
  
SELECT Name, ListPrice  
FROM Production.Product  
WHERE ListPrice = 80.99  
   AND CONTAINS(Name, 'Mountain')  
GO  

Beispiel - FREETEXT

Im folgenden Beispiel wird nach allen Dokumenten gesucht, die Wörter im Zusammenhang mit vital safety components enthalten:

USE AdventureWorks2022  
GO  
  
SELECT Title  
FROM Production.Document  
WHERE FREETEXT (Document, 'vital safety components')  
GO  

Beispiel - CONTAINSTABLE

Im folgenden Beispiel werden die Beschreibungs-ID und die Beschreibung aller Produkte zurückgegeben, für die die Spalte "Beschreibung " das Wort "Aluminium" in der Nähe des Worts "Light" oder das Wort "leicht" enthält. Es werden nur Zeilen mit einer Rangfolge von 2 oder höher zurückgegeben.

USE AdventureWorks2022  
GO  
  
SELECT FT_TBL.ProductDescriptionID,  
   FT_TBL.Description,   
   KEY_TBL.RANK  
FROM Production.ProductDescription AS FT_TBL INNER JOIN  
   CONTAINSTABLE (Production.ProductDescription,  
      Description,   
      '(light NEAR aluminum) OR  
      (lightweight NEAR aluminum)'  
   ) AS KEY_TBL  
   ON FT_TBL.ProductDescriptionID = KEY_TBL.[KEY]  
WHERE KEY_TBL.RANK > 2  
ORDER BY KEY_TBL.RANK DESC;  
GO  

Beispiel: FREETEXTTABLE

Das folgende Beispiel erweitert eine FREETEXTTABLE-Abfrage so, dass die Zeilen mit dem höchsten Rangfolgenwert zuerst zurückgegeben werden und die Rangfolge jeder Zeile zur Auswahlliste hinzugefügt wird. Um eine ähnliche Abfrage schreiben zu können, müssen Sie wissen, dass ProductDescriptionID die eindeutige Schlüsselspalte der ProductDescription-Tabelle ist.

USE AdventureWorks2022  
GO  
  
SELECT KEY_TBL.RANK, FT_TBL.Description  
FROM Production.ProductDescription AS FT_TBL   
     INNER JOIN  
     FREETEXTTABLE(Production.ProductDescription, Description,  
                    'perfect all-around bike') AS KEY_TBL  
     ON FT_TBL.ProductDescriptionID = KEY_TBL.[KEY]  
ORDER BY KEY_TBL.RANK DESC  
GO  

Im Folgenden finden Sie eine Erweiterung derselben Abfrage, die nur Zeilen mit einem Rang von 10 oder höher zurückgibt:

USE AdventureWorks2022  
GO  
  
SELECT KEY_TBL.RANK, FT_TBL.Description  
FROM Production.ProductDescription AS FT_TBL   
     INNER JOIN  
     FREETEXTTABLE(Production.ProductDescription, Description,  
                    'perfect all-around bike') AS KEY_TBL  
     ON FT_TBL.ProductDescriptionID = KEY_TBL.[KEY]  
WHERE KEY_TBL.RANK >= 10  
ORDER BY KEY_TBL.RANK DESC  
GO  

Übereinstimmung von Wörtern oder Bedeutungen

CONTAINS/CONTAINSTABLE und FREETEXT/FREETEXTTABLE eignen sich für verschiedene Übereinstimmungsarten. Nachfolgend finden Sie Informationen dazu, wie Sie das beste Prädikat oder die beste Funktion für die Abfrage auswählen können:

CONTAINS/CONTAINSTABLE

  • Suchen Sie nach einzelnen Wörtern und Ausdrücken mit genauen oder (ungenauen) Fuzzy-Matches.
  • Sie können auch die folgenden Aktionen ausführen:
    • Geben Sie den Abstand von Wörtern in einer bestimmten Entfernung voneinander an.
    • Geben Sie gewichtete Übereinstimmungen zurück.
    • Kombinieren Sie Suchbedingungen mit logischen Operatoren. Weitere Informationen finden Sie unter Verwenden von booleschen Operatoren (AND, OR und NOT) weiter unten in diesem Artikel.

FREETEXT/FREETEXTTABLE

  • Sucht nach der Bedeutung, nicht nach dem genauen Wortlaut der angegebenen Wörter, Ausdrücke oder Sätze (Freitextzeichenfolgen).
  • Übereinstimmungen werden dann generiert, wenn ein Begriff oder eine Form eines Begriffs im Volltextindex einer angegebenen Spalte gefunden wird.

Vergleichen Sie Prädikate und Funktionen

Die Prädikate CONTAINS/FREETEXT und die Rowsetwertfunktionen CONTAINSTABLE/FREETEXTTABLE besitzen eine unterschiedliche Syntax und unterschiedliche Optionen. Nachfolgend finden Sie Informationen dazu, wie Sie das beste Prädikat oder die beste Funktion für die Abfrage auswählen können:

Die Prädikate CONTAINS und FREETEXT

Verwendung. Verwenden Sie die Volltext--Prädikate CONTAINS und FREETEXT in der WHERE- oder HAVING-Klausel einer SELECT-Anweisung.

Ergebnisse. Die Prädikate CONTAINS und FREETEXT geben einen TRUE- oder FALSE-Wert zurück, der angibt, ob eine bestimmte Zeile mit der Volltextabfrage übereinstimmt. Übereinstimmende Zeilen werden im Resultset zurückgegeben.

Weitere Optionen. Sie können die Prädikate mit einem der anderen Transact-SQL-Prädikate wie LIKE und BETWEEN kombinieren.

Sie können entweder eine einzelne Spalte, eine Liste mit Spalten oder alle Spalten der Tabelle für die Suche auswählen.

Optional können Sie die Sprache angeben, deren Ressourcen bei der Volltextabfrage für die Wörtertrennung, die Wortstammerkennung und Thesaurus-Suchen sowie die Entfernung von Füllwörtern verwendet werden.

Sie können einen vierteiligen Namen im CONTAINS- oder FREETEXT-Prädikat zum Abfragen von volltextindizierten Spalten der Zieltabellen auf einem Verbindungsserver verwenden. Erstellen Sie zum Vorbereiten eines Remoteservers für den Empfang von Volltextabfragen einen Volltextindex für die Zieltabellen und -spalten auf dem Remoteserver, und fügen Sie anschließend den Remoteserver als Verbindungsserver hinzu.

Weitere Informationen: Weitere Informationen zur Syntax und zu den Argumenten dieser Prädikate finden Sie unter CONTAINS und FREETEXT.

Rowsetwertfunktionen CONTAINSTABLE und FREETEXTTABLE

Verwendung. Verwenden Sie die Funktionen CONTAINSTABLE- und FREETEXTTABLE-Funktionen wie einen herkömmlichen Tabellennamen in der FROM-Klausel einer SELECT-Anweisung.

Sie müssen die Basistabelle festlegen, um zu suchen, wenn Sie eine dieser Funktionen verwenden. Wie bei den Prädikaten können Sie eine einzelne Spalte, eine Liste mit Spalten oder alle Spalten in der Tabelle für die Suche auswählen. Außerdem können Sie optional die Sprache angeben, deren Ressourcen bei der Volltextabfrage verwendet werden sollen.

In der Regel müssen Sie die Ergebnisse von CONTAINSTABLE oder FREETEXTTABLE mit der Basistabelle verknüpfen. Um die Tabellen zusammenzufügen, müssen Sie den eindeutigen Namen der Schlüsselspalte kennen. Mit dieser Spalte, die in jeder volltextfähigen Tabelle enthalten ist, wird die Eindeutigkeit von Zeilen für die Tabelle erzwungen (die UNIQUE**KEY-Spalte). Weitere Informationen über die Schlüsselspalte, finden Sie unter Erstellen und Verwalten von Volltextindizes.

Ergebnisse. Diese Funktionen geben eine Tabelle mit null, einer oder mehreren Zeilen zurück, die mit der Volltextabfrage übereinstimmen. Die zurückgegebene Tabelle enthält nur Zeilen aus der Basistabelle, die die angegebenen Auswahlkriterien in der Volltextsuchbedingung der Funktion erfüllen.

Abfragen, die eine dieser Funktionen verwenden, geben auch wie im Folgenden dargestellt einen Relevanzrangfolgenwert (RANK) und einen Volltextschlüssel (KEY) für jede Zeile zurück:

  • Schlüssel-Spalte. Die KEY-Spalte gibt eindeutige Werte der zurückgegebenen Zeilen zurück. Die KEY-Spalte kann verwendet werden, um Auswahlkriterien anzugeben.
  • Rank-Spalte. Die RANK-Spalte gibt einen Rangwert für jede Zeile zurück, der angibt, wie gut die Zeilen mit den Auswahlkriterien übereinstimmen. Je höher der Rangwert des Textes oder Dokuments in einer Zeile ist, desto relevanter ist die Zeile für die betreffende Volltextabfrage. Unterschiedliche Zeilen können denselben Rang haben. Sie können die Anzahl zurückgegebener Übereinstimmungen mit dem optionalen Parameter top_n_by_rank einschränken. Weitere Informationen finden Sie unter Einschränken von Suchergebnissen mit RANK.

Weitere Informationen: Weitere Informationen zur Syntax und den Argumenten dieser Funktionen finden Sie unter CONTAINSTABLE und FREETEXTTABLE.

Bestimmte Suchtypen

Suchen nach einem bestimmten Wort oder Ausdruck (Einfacher Ausdruck)

Sie können in einer Tabelle mithilfe von CONTAINS, CONTAINSTABLE, FREETEXToder FREETEXTTABLE nach einem bestimmten Wort oder Ausdruck suchen. Wenn Sie z.B. die Tabelle ProductReview in der Datenbank AdventureWorks2022 nach allen Kommentaren zu einem Produkt mit dem Begriff „learning curve“ durchsuchen möchten, können Sie das CONTAINS-Prädikat wie folgt verwenden:

USE AdventureWorks2022  
GO  
  
SELECT Comments  
FROM Production.ProductReview  
WHERE CONTAINS(Comments, '"learning curve"')  
GO  

Die Suchbedingung, in diesem Fall „learning curve“, kann komplex sein und aus einem oder mehreren Begriffen bestehen.

Weitere Informationen zu Suchvorgängen nach Begriffen

Bei der Volltextsuche handelt es sich bei einem Wort (oder einem Token) um eine Zeichenfolge, deren Grenzen gemäß den linguistischen Regeln der angegebenen Sprache von entsprechenden Wörtertrennungen identifiziert werden. Ein gültiger Ausdruck besteht aus mehreren Wörtern mit oder ohne Satzzeichen dazwischen.

So ist z. B. "croissant" ein Wort, während "café au lait" ein Ausdruck ist. Solche Wörter und Ausdrücke werden als einfache Begriffe bezeichnet.

CONTAINS und CONTAINSTABLE suchen nach einer genauen Entsprechung für den Ausdruck. FREETEXT und FREETEXTTABLE teilen den Ausdruck in separate Wörter auf.

Suchen nach einem Wort mit einem Präfix (Präfixausdruck)

Sie können CONTAINS oder CONTAINSTABLE verwenden, um nach Wörtern oder Ausdrücken mit einem angegebenen Präfix zu suchen. Alle Einträge in der Spalte, die Text enthalten und mit dem angegebenen Präfix beginnen, werden zurückgegeben. So suchen Sie beispielsweise nach allen Zeilen die das Präfix topenthalten, z. B. top``ple, top``pingund top. Die Abfrage sieht folgendermaßen aus:

USE AdventureWorks2022  
GO  
  
SELECT Description, ProductDescriptionID  
FROM Production.ProductDescription  
WHERE CONTAINS (Description, '"top*"' )  
GO  

Es werden alle Textstellen zurückgegeben, die mit dem Text vor dem Sternchen (*) übereinstimmen. Wenn der Text und das Sternchen nicht in doppelte Anführungszeichen eingeschlossen sind, wie in CONTAINS (DESCRIPTION, 'top*'), wird das Sternchen von der Volltextsuche nicht als Platzhalter betrachtet.

Ist der Präfixbegriff ein Ausdruck, wird jedes Token, das Teil des Ausdrucks ist, als gesonderter Präfixbegriff behandelt. Es werden alle Zeilen mit Wörtern, die mit den Präfixbegriffen beginnen, zurückgegeben. So werden z.B. mit dem Präfixbegriff „light bread*“ Zeilen mit dem Text „light breaded“, „lightly breaded“ oder „light bread“ gefunden, aber nicht „lightly toasted bread“.

Weitere Informationen zur Präfixsuche

Ein Präfixbegriff ist eine Zeichenfolge, die einem Wort vorangestellt ist, um ein abgeleitetes Wort oder eine Flexionsform zu erhalten.

  • Bei einem einzelnen Präfixbegriff sind alle Wörter, die mit dem angegebenen Ausdruck beginnen, Teil des Resultsets. Der Ausdruck „Auto*“ ergibt also Übereinstimmungen mit „automatic“, „automobile“ usw.

  • Im Falle eines Ausdrucks wird jedes Wort innerhalb des Ausdrucks als Präfixbegriff interpretiert. Der Begriff "Auto tran*" entspricht beispielsweise "Autoübertragung" und "Automobilwandler", stimmt aber nicht mit "automatiker Motorgetriebe" überein.

Die Präfixsuche wird durch CONTAINS und CONTAINSTABLE unterstützt.

Suchen nach inflectionalen Formen eines bestimmten Worts (Generationsausdruck)

Sie können mithilfe von CONTAINS, CONTAINSTABLE, FREETEXToder FREETEXTTABLE nach allen unterschiedlichen Zeiten und Konjugationen eines Verbs oder sowohl die Singular- als auch die Pluralform eines Substantivs (Flexionssuche) bzw. nach Synonymen eines bestimmten Worts (Thesaurussuche) suchen.

Im folgenden Beispiel wird nach einer Form von „foot“ („foot“, „feet“ usw.) in der Comments -Spalte der ProductReview-Tabelle in der AdventureWorks-Datenbank gesucht:

USE AdventureWorks2022  
GO  
  
SELECT Comments, ReviewerName  
FROM Production.ProductReview  
WHERE CONTAINS (Comments, 'FORMSOF(INFLECTIONAL, "foot")')  
GO  

Die Volltextsuche verwendet Wortstammerkennungen, über die Sie die unterschiedlichen Zeiten und Konjugationen eines Verbs suchen oder sowohl die Singular- als auch die Pluralform eines Substantivs suchen können. Weitere Informationen zur Wortstammerkennung finden Sie unter Konfigurieren und Verwalten von Wörtertrennungen und Wortstammerkennungen für die Suche.

Weitere Informationen zu Generierungsbegriffsuchen

Bei den Flexionsformen handelt es sich um die verschiedenen Tempora und Konjugationen eines Verbs oder die Singular- und Pluralformen eines Substantivs.

Suchen Sie z. B. nach der inflectionalen Form des Worts "Laufwerk". Wenn verschiedene Zeilen in der Tabelle die Wörter "Drive", "Drive", "drive", "driving" und "driven" enthalten, wären alle im Resultset enthalten, da jeder dieser Elemente aus dem Wortlaufwerk inflectional generiert werden kann.

FREETEXT und FREETEXTTABLE suchen standardmäßig nach den Flexionsformen aller angegebenen Wörter. CONTAINS und CONTAINSTABLE unterstützen ein optionales INFLECTIONAL-Argument.

Suche nach Synonymen eines bestimmten Worts

Ein Thesaurus definiert vom Benutzer angegebene Synonyme für Ausdrücke. Weitere Informationen zu Thesaurusdateien finden Sie unter Konfigurieren und Verwalten von Thesaurusdateien für die Volltextsuche.

Wenn z. B. ein Eintrag "{car, automobile, truck, van}" zu einem Thesaurus hinzugefügt wird, können Sie nach der Thesaurusform des Worts "Auto" suchen. Alle Zeilen in der abgefragten Tabelle, die die Wörter "Automobile", "Truck", "Van" oder "Auto" enthalten, werden im Resultset angezeigt, da jedes dieser Wörter zum Synonymerweiterungssatz gehört, der das Wort "Auto" enthält.

FREETEXT und FREETEXTTABLE verwenden standardmäßig den Thesaurus. CONTAINS und CONTAINSTABLE unterstützen ein optionales THESAURUS-Argument.

Suche nach einem Wort, das in der Nähe eines anderen Worts auftaucht (NEAR-Suche)

Ein Näherungsbegriff bezeichnet Wörter oder Ausdrücke, die sich in Nähe zueinander befinden. Sie können auch die maximale Anzahl von nicht als Suchkriterium festgelegten Begriffen angeben, die zwischen dem ersten und dem letzten Suchbegriff liegen. Außerdem können Sie in einer beliebigen Reihenfolge oder in der angegebenen Reihenfolge nach Wörtern oder Ausdrücken suchen.

Suchen Sie beispielsweise die Zeilen, in denen sich das Wort „ice“ in der Nähe des Worts „hockey“ oder sich der Ausdruck „ice skating“ in der Nähe des Ausdrucks „ice hockey“ befindet.

CONTAINS und CONTAINSTABLE

Weitere Informationen zur NEAR-Suche finden Sie unter Suchen von Wörtern in der Nähe eines anderen Worts mit NEAR.

Suchen nach Wörtern oder Ausdrücken mit gewichteten Werten (Gewichteter Ausdruck)

Sie können CONTAINSTABLE verwenden, um nach Wörtern oder Ausdrücken zu suchen und einen Gewichtungswert anzugeben. Die Gewichtung, gemessen als eine Zahl von 0,0 bis 1,0, gibt die Bedeutung für jedes Wort und jeden Ausdruck in einer Gruppe von Wörtern und Ausdrücken an. Der Gewichtungswert 0.0 ist der niedrigste, und 1.0 ist der höchste mögliche Wert.

Das folgende Beispiel zeigt eine Abfrage, die nach allen Kundenadressen sucht, wobei Gewichtungen verwendet werden, in denen jeder Text, der mit der Zeichenfolge "Bay" beginnt, entweder "Street" oder "View" aufweist. Die Ergebnisse geben den Zeilen, die mehr der angegebenen Wörter enthalten, eine höhere Rangfolge.

USE AdventureWorks2022  
GO  
  
SELECT AddressLine1, KEY_TBL.RANK   
FROM Person.Address AS Address INNER JOIN  
CONTAINSTABLE(Person.Address, AddressLine1, 'ISABOUT ("Bay*",   
         Street WEIGHT(0.9),   
         View WEIGHT(0.1)  
         ) ' ) AS KEY_TBL  
ON Address.AddressID = KEY_TBL.[KEY]  
ORDER BY KEY_TBL.RANK DESC  
GO  

Ein gewichteter Begriff kann in Verbindung mit jedem einfachen Begriff, einem Präfixbegriff, einem Generierungsbegriff oder einem NEAR-Begriff verwendet werden.

Weitere Informationen zu Suchvorgängen nach gewichteten Begriffen

In einer Suche nach einem gewichteten Begriff gibt der Gewichtungswert für jedes Wort und jeden Ausdruck in einer Gruppe von Wörtern und Ausdrücken den Grad der Wichtigkeit an. Der Gewichtungswert 0,0 ist der niedrigste, und 1,0 ist der höchste mögliche Wert.

Sie können beispielsweise in einer Abfrage, in der nach mehreren Begriffen gesucht wird, jedem Suchwort einen Gewichtungswert zuweisen, der dessen Bedeutung im Vergleich zu den anderen Wörtern in der Suchbedingung angibt. In den Ergebnissen für diesen Abfragetyp werden die relevantesten Zeilen zuerst zurückgegeben, entsprechend der relativen Gewichtung, die Sie den Suchwörtern zugewiesen haben. Das Resultset enthält Dokumente oder Zeilen mit beliebigen angegebenen Ausdrücken (bzw. dem umgebenden Inhalt). Einige Ergebnisse werden jedoch als relevanter bewertet, weil den einzelnen Suchausdrücken verschiedene Gewichtungswerte zugeordnet sind.

Die Suche nach dem gewichteten Begriff wird durch CONTAINSTABLE unterstützt.

Verwenden von AND, OR und NOT (boolesche Operatoren)

Das CONTAINS-Prädikat und die CONTAINSTABLE-Funktion verwenden dieselben Suchbedingungen. Beide unterstützen das Kombinieren mehrerer Suchbegriffe mit booleschen Operatoren – AND, OR, und NOT –, um logische Operationen auszuführen. Sie können Z. B. AND verwenden, um Zeilen zu finden, die sowohl "Latte" als auch "New York-Style Bagel" enthalten. Sie können z. B. AND NOT verwenden, um die Zeilen zu finden, die "Bagel" enthalten, aber nicht "Cremekäse" enthalten.

Im Gegensatz dazu behandeln FREETEXT und FREETEXTTABLE die booleschen Begriffe als Wörter, nach denen gesucht werden soll.

Informationen zum Kombinieren von CONTAINS mit anderen Prädikaten, die die logischen Operatoren AND, OR und NOT verwenden, finden Sie unter Search Condition (Transact-SQL).

Beispiel

Im folgenden Beispiel wird das CONTAINS-Prädikat verwendet, um nach Beschreibungen zu suchen, bei denen die Beschreibungs-ID nicht gleich 5 ist, und die Beschreibung enthält sowohl das Wort "Aluminium" als auch das Wort "Spindel". Die Suchbedingung verwendet den Booleschen Operator AND. In diesem Beispiel wird die ProductDescription-Tabelle der AdventureWorks2022-Datenbank verwendet.

USE AdventureWorks2022  
GO  
  
SELECT Description  
FROM Production.ProductDescription  
WHERE ProductDescriptionID <> 5 AND  
   CONTAINS(Description, 'aluminum AND spindle')  
GO  

Case, Stopwords, Language und Thesaurus

Beim Schreiben von Volltextabfragen können Sie auch die folgenden Optionen angeben:

  • Unterscheidung nach Groß-/Kleinschreibung. Bei Volltextabfragen wird nicht nach Groß- und Kleinschreibung unterschieden. Im Japanischen gibt es allerdings mehrere phonetische Orthografien, bei denen das Konzept der orthografischen Normalisierung ähnlich der Nichtunterscheidung nach Groß-/Kleinschreibung ist (z. B. kana = keine Unterscheidung). Diese Art orthografischer Normalisierung wird nicht unterstützt.

  • Stoppwörter. Wenn Sie eine Volltextabfrage definieren, ignoriert die Volltext-Engine Stoppwörter (auch als Füllwörter bezeichnet) in den Suchkriterien. Stoppwörter sind Wörter wie Artikel ("ein" oder "der"), Konjunktionen ("und") oder Hilfsverben ("ist"), die häufig vorkommen können, jedoch bei der Suche nach bestimmtem Text nicht hilfreich sind. Stoppwörter werden in einer Stoppliste aufgelistet. Jedem Volltextindex ist eine bestimmte Stoppliste zugeordnet, die festlegt, welche Stoppwörter bei Abfragen oder im Index während der Indizierung ignoriert werden. Weitere Informationen finden Sie unter Konfigurieren und Verwalten von Stoppwörtern und Stopplisten für Volltextsuche.

  • Sprache, mit der Language-Option. Viele Abfrageausdrücke hängen sehr vom Verhalten bei Wörtertrennungen ab. Um sicherzustellen, dass Sie die richtige Wörtertrennung (und Wortstammerkennung) sowie die richtige Thesaurusdatei verwenden, wird empfohlen, die LANGUAGE-Option anzugeben. Weitere Informationen finden Sie unter Auswählen einer Sprache beim Erstellen eines Volltextindex.

  • Thesaurus. FREETEXT- und FREETEXTTABLE-Abfragen verwenden standardmäßig den Thesaurus. CONTAINS und CONTAINSTABLE unterstützen ein optionales THESAURUS-Argument. Weitere Informationen finden Sie unter Konfigurieren und Verwalten von Thesaurusdateien für die Volltextsuche.

Überprüfen der Tokenisierungsergebnisse

Nachdem Sie eine entsprechende Kombination aus Wörtertrennung, Thesaurus und Stoppliste auf eine Abfrage angewendet haben, können Sie sehen, wie die Volltextsuche die Ergebnisse zerlegt, indem Sie die dynamische Verwaltungssicht sys.dm_fts_parser verwenden. Weitere Informationen finden Sie unter sys.dm_fts_parser (Transact-SQL).

Weitere Informationen

CONTAINS (Transact-SQL)
CONTAINSTABLE (Transact-SQL)
FREETEXT (Transact-SQL)
FREETEXTTABLE (Transact-SQL)
Erstellen von Volltextsuchabfragen (Visual Database Tools)
Verbessern der Leistung von Volltextabfragen