FREETEXTTABLE (Transact-SQL)FREETEXTTABLE (Transact-SQL)

GILT FÜR: jaSQL ServerjaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Ist eine Funktion der FROM-Klausel von einer Transact-SQLTransact-SQL SELECT-Anweisung Ausführen einer SQL ServerSQL Server Volltextsuche Volltext-indizierte Spalten mit zeichenbasierten Datentypen.Is a function used in the FROM clause of a Transact-SQLTransact-SQL SELECT statement to perform a SQL ServerSQL Server full-text search on full-text indexed columns containing character-based data types. Diese Funktion gibt eine Tabelle mit 0 (null), einer oder mehreren Zeilen für alle Spalten mit Werten, die die Bedeutung und nicht nur dem genauen Wortlaut des Texts in der angegebenen entsprechen Freetext_string.This function returns a table of zero, one, or more rows for those columns containing values that match the meaning and not just the exact wording, of the text in the specified freetext_string. Auf FREETEXTTABLE wird wie auf einen regulären Tabellennamen verwiesen.FREETEXTTABLE is referenced as if it were a regular table name.

FREETEXTTABLE eignet sich für unterschiedliche Arten von Spielen als das FREETEXT (Transact-SQL-),FREETEXTTABLE is useful for the same kinds of matches as the FREETEXT (Transact-SQL),

Abfragen, die FREETEXTTABLE verwenden, geben für jede Zeile einen Relevanzrangfolgenwert (Relevance Ranking Value, RANK) und einen Volltextschlüssel (KEY) zurück.Queries using FREETEXTTABLE return a relevance ranking value (RANK) and full-text key (KEY) for each row.

Hinweis

Informationen zu den Formen der Volltextsuche, die von SQL ServerSQL Server unterstützt werden, finden Sie unter Abfragen mit Volltextsuche.For information about the forms of full-text searches that are supported by SQL ServerSQL Server, see Query with Full-Text Search.

(https://azure.microsoft.com/documentation/articles/sql-database-preview-whats-new/?WT.mc_id=TSQL_GetItTag)).|(https://azure.microsoft.com/documentation/articles/sql-database-preview-whats-new/?WT.mc_id=TSQL_GetItTag)).|

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

  
FREETEXTTABLE (table , { column_name | (column_list) | * }   
          , 'freetext_string'   
     [ , LANGUAGE language_term ]   
     [ , top_n_by_rank ] )  

ArgumenteArguments

tabletable
Der Name der Tabelle, die für Volltextabfragen markiert wurde.Is the name of the table that has been marked for full-text querying. Tabelle oder Ansichtkann ein, zwei oder drei Datenbank-Objektnamen.table or viewcan be a one-, two-, or three-part database object name. Bei der Abfrage einer Sicht kann nur eine volltextindizierte Basistabelle verwendet werden.When querying a view, only one full-text indexed base table can be involved.

Tabelle kann keinen Servernamen angeben und nicht in Abfragen auf Verbindungsservern verwendet werden.table cannot specify a server name and cannot be used in queries against linked servers.

column_namecolumn_name
Der Name einer oder mehrerer volltextindizierten Spalten der in der FROM-Klausel angegebenen Tabelle.Is the name of one or more full-text indexed columns of the table specified in the FROM clause. Die Spalten können vom Typ char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary oder varbinary(max) sein.The columns can be of type char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary, or varbinary(max).

column_listcolumn_list
Gibt an, dass verschiedene, durch Trennzeichen getrennte Spalten angegeben werden können.Indicates that several columns, separated by a comma, can be specified. column_list muss in Klammern stehen.column_list must be enclosed in parentheses. Sofern nicht language_term angegeben ist, muss die Sprache aller Spalten von column_list identisch sein.Unless language_term is specified, the language of all columns of column_list must be the same.

*
Gibt an, dass alle für die Volltextsuche registrierten Spalten nach dem angegebenen freetext_string-Wert durchsucht werden.Specifies that all columns that have been registered for full-text searching should be used to search for the given freetext_string. Es sei denn, Language_term angegeben ist, wird die Sprache aller Volltext-indizierte Spalten in der Tabelle muss identisch sein.Unless language_term is specified, the language of all full-text indexed columns in the table must be the same.

freetext_stringfreetext_string
Der Text, nach dem in column_name gesucht werden soll.Is text to search for in the column_name. Es kann hierbei ein beliebiger Text aus Wörtern, Ausdrücken und Sätzen eingegeben werden.Any text, including words, phrases or sentences, can be entered. Übereinstimmungen werden dann generiert, wenn ein Begriff oder Formen eines Begriffs im Volltextindex gefunden werden.Matches are generated if any term or the forms of any term is found in the full-text index.

Im Gegensatz zu suchen, in der CONTAINS Suchbedingung, in und ein Schlüsselwort ist, bei der Verwendung in Freetext_string das Wort 'und' gilt als Füllwort oder Stoppwort, und werden verworfen.Unlike in the CONTAINS search condition where AND is a keyword, when used in freetext_string the word 'and' is considered a noise word, or stopword, and will be discarded.

Die Verwendung von WEIGHT, FORMSOF, Platzhaltern, NEAR und anderer Syntax ist nicht zulässig.Use of WEIGHT, FORMSOF, wildcards, NEAR and other syntax is not allowed. Für freetext_string wird eine Worttrennung durchgeführt, und die Wörter werden auf den Stamm zurückgeführt und durchlaufen den Thesaurus.freetext_string is wordbroken, stemmed, and passed through the thesaurus.

LANGUAGE language_termLANGUAGE language_term
Die Sprache, deren Ressourcen für die Wörtertrennung, die Wortstammerkennung und den Thesaurus sowie die Entfernung von Stoppwörtern in der Abfrage verwendet werden.Is the language whose resources will be used for word breaking, stemming, and thesaurus and stopword removal as part of the query. Dieser Parameter ist optional und kann als Zeichenfolge, ganze Zahl oder Hexadezimalwert entsprechend dem Gebietsschemabezeichner (Locale Identifier – LCID) einer Sprache angegeben werden.This parameter is optional and can be specified as a string, integer, or hexadecimal value corresponding to the locale identifier (LCID) of a language. Wird language_term angegeben, wird die entsprechende Sprache auf alle Elemente der Suchbedingung angewendet.If language_term is specified, the language it represents will be applied to all elements of the search condition. Wird kein Wert angegeben, wird die Volltextsprache der Spalte verwendet.If no value is specified, the column full-text language is used.

Wenn Dokumente anderer Sprachen zusammen als BLOBs (Binary Large Objects) in einer einzelnen Spalte gespeichert werden, legt der Gebietsschemabezeichner (LCID) eines bestimmten Dokuments die zur Indizierung seines Inhalts zu verwendende Sprache fest.If documents of different languages are stored together as binary large objects (BLOBs) in a single column, the locale identifier (LCID) of a given document determines what language is used to index its content. Beim Abfragen einer solchen Spalte kann die Angabe von LANGUAGE language_term die Wahrscheinlichkeit einer hohen Übereinstimmung steigern.When querying such a column, specifying LANGUAGE language_term can increase the probability of a good match.

In Form einer Zeichenfolge entspricht language_term dem Wert der alias-Spalte in der sys.syslanguages (Transact-SQL)-Kompatibilitätssicht.When specified as a string, language_term corresponds to the alias column value in the sys.syslanguages (Transact-SQL) compatibility view. Die Zeichenfolge muss in einfache Anführungszeichen gesetzt werden, z.B. 'language_term'.The string must be enclosed in single quotation marks, as in 'language_term'. In Form einer ganzen Zahl ist language_term der eigentliche Gebietsschemabezeichner, der die Sprache identifiziert.When specified as an integer, language_term is the actual LCID that identifies the language. In Form eines Hexadezimalwerts ist language_term gleich 0x, gefolgt vom Hexadezimalwert des Gebietsschemabezeichners.When specified as a hexadecimal value, language_term is 0x followed by the hexadecimal value of the LCID. Der Hexadezimalwert darf acht Ziffern nicht überschreiten, einschließlich führender Nullen.The hexadecimal value must not exceed eight digits, including leading zeros.

Wird der Wert im Format Doppelbyte-Zeichensatz (Double-Byte Character Set, DBCS) angegeben, wird er von MicrosoftMicrosoft SQL ServerSQL Server in Unicode konvertiert.If the value is in double-byte character set (DBCS) format, MicrosoftMicrosoft SQL ServerSQL Server will convert it to Unicode.

Ist die angegebene Sprache ungültig oder sind keine Ressourcen installiert, die dieser Sprache entsprechen, gibt SQL ServerSQL Server einen Fehler zurück.If the language specified is not valid or there are no resources installed that correspond to that language, SQL ServerSQL Server returns an error. Geben Sie 0x0 als language_term an, um neutrale Sprachressourcen zu verwenden.To use the neutral language resources, specify 0x0 as language_term.

top_n_by_ranktop_n_by_rank
Gibt an, dass nur die nhöchsten Rang entspricht in absteigender Reihenfolge zurückgegeben.Specifies that only the nhighest ranked matches, in descending order, are returned. Gilt nur, wenn ein Ganzzahlwert n, angegeben wird.Applies only when an integer value, n, is specified. Wenn top_n_by_rank mit anderen Parametern kombiniert wird, werden von der Abfrage möglicherweise weniger Zeilen zurückgegeben als die Anzahl von Zeilen, die mit allen Prädikaten übereinstimmen.If top_n_by_rank is combined with other parameters, the query could return fewer rows than the number of rows that actually match all the predicates. Top_n_by_rank lässt sich die abfrageleistung zu erhöhen, indem Sie nur die relevantesten Treffer erneut aufrufen.top_n_by_rank allows you to increase query performance by recalling only the most relevant hits.

HinweiseRemarks

Volltextprädikate und -funktionen gelten für eine einzelne Tabelle, die im FROM-Prädikat enthalten ist.Full-text predicates and functions work on a single table, which is implied in the FROM predicate. Um eine Suche in mehreren Tabellen auszuführen, können Sie eine verknüpfte Tabelle in der FROM-Klausel verwenden, um in einem Resultset zu suchen, das aus mindestens zwei Tabellen erstellt wird.To search on multiple tables, use a joined table in your FROM clause to search on a result set that is the product of two or more tables.

FREETEXTTABLE verwendet die gleichen Suchbedingungen wie das FREETEXT-Prädikat.FREETEXTTABLE uses the same search conditions as the FREETEXT predicate.

Die zurückgegebene Tabelle besitzt wie CONTAINSTABLE, Spalten Schlüssel und Rang, die in der Abfrage und die entsprechenden Zeilen der Zeile Werte ranking verwiesen.Like CONTAINSTABLE, the table returned has columns named KEY and RANK, which are referenced within the query to obtain the appropriate rows and use the row ranking values.

BerechtigungenPermissions

FREETEXTTABLE kann nur von Benutzern aufgerufen werden, die entsprechende SELECT-Berechtigungen für die angegebene Tabelle oder die referenzierten Spalten der Tabelle besitzen.FREETEXTTABLE can be invoked only by users with appropriate SELECT privileges for the specified table or the referenced columns of the table.

BeispieleExamples

A.A. Einfaches BeispielSimple Example

Im folgende Beispiel erstellt und füllt eine Tabelle zwei Spalten mit 3 Landkreise und Farben in ihren Flags.The following example creates and populates a simple table of two columns, listing 3 counties and the colors in their flags. It erstellt und füllt einen Volltextkatalog und Index für die Tabelle.The it creates and populates a full-text catalog and index on the table. Die FREETEXTTABLE Syntax veranschaulicht.Then the FREETEXTTABLE syntax is demonstrated.

CREATE TABLE Flags (Country nvarchar(30) NOT NULL, FlagColors varchar(200));  
CREATE UNIQUE CLUSTERED INDEX FlagKey ON Flags(Country);  
INSERT Flags VALUES ('France', 'Blue and White and Red');  
INSERT Flags VALUES ('Italy', 'Green and White and Red');  
INSERT Flags VALUES ('Tanzania', 'Green and Yellow and Black and Yellow and Blue');  
SELECT * FROM Flags;  
GO  
  
CREATE FULLTEXT CATALOG TestFTCat;  
CREATE FULLTEXT INDEX ON Flags(FlagColors) KEY INDEX FlagKey ON TestFTCat;  
GO   
  
SELECT * FROM Flags;  
SELECT * FROM FREETEXTTABLE (Flags, FlagColors, 'Blue');  
SELECT * FROM FREETEXTTABLE (Flags, FlagColors, 'Yellow');  

B.B. Verwenden von FREETEXT in einem INNER JOINUsing FREETEXT in an INNER JOIN

Das folgende Beispiel gibt die Beschreibung und der Rang von Produkten mit einer Beschreibung, die die Bedeutung der entspricht high level of performance.The following example returns the description and rank of any products with a description that matches the meaning of high level of performance.

USE AdventureWorks2012;  
GO  
  
SELECT FT_TBL.Description  
    ,KEY_TBL.RANK  
FROM Production.ProductDescription AS FT_TBL   
    INNER JOIN FREETEXTTABLE(Production.ProductDescription,  
    Description,   
    'high level of performance') AS KEY_TBL  
ON FT_TBL.ProductDescriptionID = KEY_TBL.[KEY]  
ORDER BY RANK DESC;  
GO  

C.C. Angeben der Sprache und der höchsten ÜbereinstimmungenSpecifying Language and Highest Ranked Matches

Im folgenden Beispiel ist identisch, und zeigt die Verwendung von der LANGUAGE Language_term und Top_n_by_rank Parameter.The following example is identical and shows the use of the LANGUAGElanguage_term and top_n_by_rank parameters.

USE AdventureWorks2012;  
GO  
  
SELECT FT_TBL.Description  
    ,KEY_TBL.RANK  
FROM Production.ProductDescription AS FT_TBL   
    INNER JOIN FREETEXTTABLE(Production.ProductDescription,  
    Description,   
    'high level of performance',  
    LANGUAGE N'English', 2) AS KEY_TBL  
ON FT_TBL.ProductDescriptionID = KEY_TBL.[KEY]  
ORDER BY RANK DESC;  
GO  

Hinweis

Die Sprache Language_term Parameter ist nicht erforderlich, mit der Top_n_by_rank Parameter.The LANGUAGE language_term parameter is not required to use the top_n_by_rank parameter.

Siehe auchSee Also

Erste Schritte mit der Volltextsuche Get Started with Full-Text Search
Erstellen und Verwalten von Volltextkatalogen Create and Manage Full-Text Catalogs
CREATE FULLTEXT CATALOG (Transact-SQL) CREATE FULLTEXT CATALOG (Transact-SQL)
CREATE FULLTEXT INDEX (Transact-SQL) CREATE FULLTEXT INDEX (Transact-SQL)
Erstellen und Verwalten von Volltextindizes Create and Manage Full-Text Indexes
Abfragen mit Volltextsuche Query with Full-Text Search
Erstellen von Volltextsuchabfragen (Visual Database Tools) Create Full-Text Search Queries (Visual Database Tools)
CONTAINS (Transact-SQL) CONTAINS (Transact-SQL)
CONTAINSTABLE (Transact-SQL) CONTAINSTABLE (Transact-SQL)
FREETEXT (Transact-SQL) FREETEXT (Transact-SQL)
Rowset-Funktionen (Transact-SQL) Rowset Functions (Transact-SQL)
SELECT (Transact-SQL) SELECT (Transact-SQL)
WHERE (Transact-SQL) WHERE (Transact-SQL)
Rang vorausberechnen (Serverkonfigurationsoption)precompute rank Server Configuration Option