FREETEXTTABLE (Transact-SQL)

Zwraca zero, jeden lub więcej wierszy dla tych kolumn zawierające typy danych znakowych dla wartości, które pasują do znaczenia, ale nie dokładna treść, tekst w określonej tabela freetext_string. FREETEXTTABLE można się odwoływać tylko w klauzula FROM instrukcja SELECT, takie jak nazwa tabela regularnych.

Kwerendy przy użyciu FREETEXTTABLE należy określić typ freetext pełnego tekstu kwerendy, które zwracają znaczenia, klasyfikacja wartość (pozycja) i pełnego tekstu klucz (KEY) dla każdego wiersza.

Topic link iconKonwencje składni języka Transact-SQL

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

Argumenty

  • table
    Is the name of the table that has been marked for full-text querying.table or viewcan be a one-, two-, or three-part database object name.Wykonywanie kwerendy w widoku, mogą uczestniczyć tylko jednego pełnego tekstu indeksowanej tabela bazowa.

    table Nie można określić nazwa serwera i nie może być używany w kwerendach serwery połączone.

  • column_name
    Jest nazwą jednej lub kilku kolumn indeksowanych pełnego tekstu z tabela określone w klauzula FROM.Kolumny może być typu char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary, lub varbinary(max).

  • column_list
    Indicates that several columns, separated by a comma, can be specified.column_list must be enclosed in parentheses.Chyba że language_term jest określony język wszystkie kolumny column_list musi być taka sama.

  • *
    Określa, że wszystkie kolumny, które zostały zarejestrowane przez funkcję wyszukiwania pełnotekstowego powinny być używane do wyszukiwania danej freetext_string. Chyba że language_term jest określony, język wszystkich kolumn indeksowanych całego tekstu w tabela muszą być takie same.

  • freetext_string
    Tekst do wyszukania w jest column_name. Można wprowadzić dowolny tekst, włączając w to słowa, frazy lub zdania.Dopasowuje są generowane, jeśli dowolnego terminu lub formularze każdy okres znajduje się w indeksie pełnego tekstu.

    W odróżnieniu od w CONTAINS wyszukiwania warunkiem gdzie i jest słowem kluczowym, kiedy jest używana w freetext_string wyraz "i" jest uważany za wyraz ignorowany lub stopword, a zostaną odrzucone.

    Use of WEIGHT, FORMSOF, wildcards, NEAR and other syntax is not allowed.freetext_string is wordbroken, stemmed, and passed through the thesaurus.Jeśli freetext_string jest ujęty w podwójny cudzysłów, zamiast tego jest wykonywane dopasowania frazę; Mapowanie rdzeni i tezaurusa nie są wykonywane.

  • LANGUAGE language_term
    To język, w których zasobów będzie używany do dzielenia wyrazów, mapowanie rdzeni i usuwania tezaurusa i stopword jako część tej kwerendy.Ten parametr jest opcjonalny i może być określona jako ciąg znaków, liczba całkowita lub wartość szesnastkową odpowiadającą identyfikator regionalny (LCID) języka.Jeśli language_term jest określony, język reprezentuje zostaną zastosowane do wszystkich elementów tego warunek wyszukiwania. Jeśli nie określono wartości, używany jest język pełnego tekstu kolumna.

    Jeśli dokumenty w różnych językach są przechowywane razem jako binarne dużych obiektów (bloków BLOB) w jednej kolumnie, identyfikator regionalny (LCID) danego dokumentu określa, jaki język jest używany do indeksowania zawartości.When querying such a column, specifying LANGUAGElanguage_term can increase the probability of a good match.

    Jeśli określona jako ciąg znaków, language_term odpowiada alias wartość kolumna sys.syslanguages (Transact-SQL) Widok zgodności. Ciąg musi być ujęty w pojedynczy cudzysłów, tak jak "language_term". Po określeniu jako liczbę całkowitą z zakresu language_term to rzeczywiste LCID identyfikujący języka. Gdy określany jako wartość szesnastkowa language_term 0 x następuje szesnastkowej wartości LCID. Wartość szesnastkowa nie może przekraczać ośmiu cyfr, łącznie z zerami na początku.

    If the value is in double-byte character set (DBCS) format, Microsoft SQL Server will convert it to Unicode.

    Jeśli określony język nie jest prawidłowy lub nie istnieje żadne zasoby nie zainstalowano odpowiadające dla danego języka SQL Server Zwraca błąd. Aby można było korzystać z zasobów języków neutralnych, określić 0x0 jako language_term.

  • top_n_by_rank
    Specifies that only the nhighest ranked matches, in descending order, are returned.Ma zastosowanie tylko wtedy, gdy wartością całkowitą n, jest określona.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 allows you to increase query performance by recalling only the most relevant hits.

Remarks

Predykaty pełnego tekstu, a funkcje pracy na pojedynczej tabela, która jest podany w predykacie FROM.Aby wyszukać wielu tabel, należy użyć sprzężonej tabela w klauzula FROM do wyszukiwania zestaw wyników, który to iloczyn dwóch lub większej liczby tabel.

FREETEXTTABLE używa tych samych warunkach wyszukiwania jako predykat FREETEXT.

CONTAINSTABLE, takich jak zwracany zawiera kolumny o nazwie tabela KLUCZ and POZYCJA, które mają odwołania w ciągu kwerendy, aby uzyskać odpowiednie wiersze i w wierszu wartości klasyfikacji.

Jeśli poziom zgodności jest mniejsza niż 70 FREETEXTTABLE nie został rozpoznany jako słowo kluczowe.Aby uzyskać więcej informacji zobaczsp_dbcmptlevel (języka Transact-SQL).

Uprawnienia

FREETEXTTABLE może być wywoływana tylko przez użytkowników z odpowiednimi uprawnieniami SELECT dla określonej tabela lub do którego istnieje odwołanie kolumny tabela.

Przykłady

W poniższym przykładzie zwraca nazwę i opis wszystkich kategorii, które odnoszą się do sweet, candy, bread, dry, lub meat.

Uwaga

Aby uruchomić ten przykład, trzeba zainstalować Northwind bazy danych.Aby uzyskać informacje dotyczące sposobu instalowania Northwind bazy danych, zobacz temat Pobieranie Northwind i przykładowe bazy danych pubs.

USE Northwind;
SELECT FT_TBL.CategoryName 
    ,FT_TBL.Description
    ,KEY_TBL.RANK
FROM dbo.Categories AS FT_TBL 
    INNER JOIN FREETEXTTABLE(dbo.Categories, Description, 
        'sweetest candy bread and dry meat') AS KEY_TBL
        ON FT_TBL.CategoryID = KEY_TBL.[KEY];
GO

The following example is identical and shows the use of the LANGUAGElanguage_term and top_n_by_rank parameters.

USE Northwind;
SELECT FT_TBL.CategoryName 
    ,FT_TBL.Description
    ,KEY_TBL.RANK
FROM dbo.Categories AS FT_TBL 
    INNER JOIN FREETEXTTABLE(dbo.Categories, Description, 
        'sweetest candy bread and dry meat',LANGUAGE 'English',2) 
        AS KEY_TBL
        ON FT_TBL.CategoryID = KEY_TBL.[KEY];
GO

Uwaga

JĘZYK language_term parameter nie jest wymagane używanie top_n_by_rank Parametr.