Udostępnij za pośrednictwem


FREETEXTTABLE (Transact-SQL)

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

Kwerendy przy użyciu FREETEXTTABLE umożliwia określenie typu freetext pełnego tekstu kwerend, które zwracają znaczenie dla klasyfikacji wartość (RANGA) i pełnego tekstu klucz (klucza) dla każdego wiersza.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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

Argumenty

  • table
    Jest nazwą tabela , która została oznaczona do pełnego tekstu podczas badania.tablelub viewmoże być jedno-, dwu- lub nazwę obiektu bazy danych z trzech części.Podczas badania widoku, mogą uczestniczyć tylko jednego pełnego tekstu indeksowanych tabela bazowa .

    tablenie można określić nazwa serwera i nie można używać w kwerendach przeciwko serwerów połączonych.

  • column_name
    Jest nazwą jednej lub kilku kolumn indeksowanych pełnotekstowe tabela określonego w klauzulaFROM.The columns can be of type char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary, or varbinary(max).

  • column_list
    Wskazuje, można określić kilka kolumn, oddzielone przecinkiem.column_listmuszą być ujęte w nawiasy.Chyba że language_term jest określony język wszystkich kolumn column_list musi być taka sama.

  • *
    Określa, że wszystkie kolumny, które zostały zarejestrowane dla wyszukiwanie pełnotekstowe powinny być używane do wyszukiwania danego freetext_string.Chyba że language_term określono język wszystkie kolumny indeksowanej pełnego tekstu w tabela musi być taka sama.

  • freetext_string
    Jest to tekst do wyszukania w column_name.Można wprowadzić dowolny tekst, włączając w to słowa, frazy lub zdania.Dopasowuje są generowane, jeśli każdy termin lub formularze każdy termin został znaleziony w indeksu pełnotekstowego.

    W odróżnieniu od w ZAWIERA warunek wyszukiwania gdzie i jest słowo kluczowe w freetext_string wyraz "i" uznaje się za wyraz ignorowanylub stopwordi zostaną odrzucone.

    Nie dopuszcza się stosowanie wagi, FORMSOF, symboli wieloznacznych, NEAR i innych składni.freetext_stringjest wordbroken odpływową i przekazywane za pośrednictwem tezaurusa.Jeśli freetext_string jest ujęty w znaki cudzysłowu, zamiast tego jest wykonywane dopasowanie frazę; Mapowanie rdzeni i tezaurus nie są wykonywane.

  • JĘZYKlanguage_term
    To język, którego zasoby będą używane do dzielenia wyrazu, wynikające i usuwania tezaurusa i stopword jako część tej kwerendy.Ten parametr jest opcjonalny i może być określony jako ciąg, liczba całkowita lub wartość szesnastkową odpowiadającą identyfikator ustawienia regionalne (LCID) języka.Jeśli language_term określono język reprezentuje zostaną zastosowane do wszystkich elementów warunek wyszukiwania.Jeśli nie określono wartości, używany jest język pełnego tekstu kolumna .

    Dokumenty w różnych językach są przechowywane razem jako dużych obiektów binarnych (bloków BLOB) w jednej kolumna, identyfikator ustawienia regionalne (LCID) danego dokumentu określa, jaki język jest używany do indeksowania zawartości.Podczas badania takiej kolumna, określając LANGUAGElanguage_term można zwiększyć prawdopodobieństwo dobre dopasowanie.

    Gdy określona jako ciąg language_term odpowiada alias wartośćkolumna w sys.syslanguages (Transact-SQL) Widok zgodności. ciąg musi być ujęty w znaki pojedynczego cudzysłowu, tak jak w "language_term".Gdy określona jako liczba całkowita, language_term jest rzeczywisty identyfikator LCID identyfikujący język.Gdy określona jako wartość szesnastkową language_term x 0 następuje szesnastkowej wartości LCID.Wartość szesnastkowa nie może przekraczać ośmiu cyfr, łącznie z zerami na początku.

    Jeśli wartość jest w formacie zestaw znaków dwubajtowych (zestaw znaków dwubajtowych), Microsoft SQL Server przekonwertuje go do kodu Unicode.

    Jeśli język określony jest nieprawidłowa lub istnieje żadne zasoby zainstalowanych odpowiadające tym języku, SQL Server zwraca błąd.Aby korzystać z zasobów języków neutralnych, określić 0x0 jako language_term.

  • top_n_by_rank
    Określa, że tylko nnajwyższy dopasowania środkowa, w kolejności malejącej, są zwracane.Stosuje się tylko wtedy, gdy wartość całkowitą, n, jest określona.Jeśli top_n_by_rank jest połączone z innymi parametrami, kwerenda może zwracać mniejszej liczby wierszy niż liczba wierszy, które rzeczywiście spełniają wszystkie predykatów.top_n_by_rankpozwala zwiększyć wydajność kwerendy PRZYWOŁUJĄC tylko najodpowiedniejsze trafień.

Uwagi

Pełny tekst predykaty i funkcje pracy na pojedynczej tabela, która jest wprost w predykacie od.Wyszukiwanie wielu tabel, należy użyć sprzężonej tabela w klauzula FROM wyszukiwania na zestaw wyników będącego produktem dwóch lub więcej tabel.

FREETEXTTABLE używa tych samych warunków wyszukiwania jako predykat FREETEXT.

Podobnie jak CONTAINSTABLE, tabela zwrócona zawiera kolumny o nazwie klucz i RANGA, wspomnianych w kwerendę, aby uzyskać odpowiednie wiersze i w wierszu Klasyfikacja wartości.

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

Uprawnienia

FREETEXTTABLE można wywołać tylko przez użytkowników z odpowiednimi uprawnieniami wybierz dla określonej tabela lub odwołanie kolumny tabela.

Przykłady

Poniższy przykład zwraca nazwę kategorii i opis wszystkich kategorii, które odnoszą się do sweet, candy, bread, dry, lub meat.

Ostrzeżenie

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

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

W poniższym przykładzie jest taka sama jak i przedstawia zastosowanie LANGUAGElanguage_term i top_n_by_rank Parametry.

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

Ostrzeżenie

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