CREATE FULLTEXT INDEX (Transact-SQL)

Tworzy indeks pełnotekstowy w tabeli lub w indeksowanym widoku w bazie danych.Tylko jeden indeks pełnotekstowy jest dozwolony na tabelę lub indeksowany widok i każdy indeks pełnotekstowy dotyczy jednej tabeli lub jednego indeksowanego widoku.

Wartość wskazująca, kiedy zadanie ma być wykonywane:

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

CREATE FULLTEXT INDEX ON table_name
      [ ( { column_name 
             [ TYPE COLUMN type_column_name ]
             [ LANGUAGE language_term ] 
        } [ ,...n] 
            ) ]
    KEY INDEX index_name 
        [ ON <catalog_filegroup_option> ]
        [ WITH [ ( ] <with_option> [ ,...n] [ ) ] ]
[;]

<catalog_filegroup_option>::=
  {
        fulltext_catalog_name 
  | ( fulltext_catalog_name, FILEGROUP filegroup_name )
  | ( FILEGROUP filegroup_name, fulltext_catalog_name )
  | ( FILEGROUP filegroup_name )
  }

<with_option>::=
  {
   CHANGE_TRACKING [ = ] { MANUAL | AUTO | OFF [, NO POPULATION ] } 
  | STOPLIST [ = ] { OFF | SYSTEM | stoplist_name }
  }

Argumenty

  • table_name
    Data rozpoczęcia wykonania zadanie.

  • column_name
    Nazwa kolumny uwzględnionej w indeksie pełnotekstowym.Jedynie kolumny char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary oraz varbinary(max) można indeksować do wyszukiwania pełnotekstowego.Aby określić wiele kolumn, należy w następujący sposób powtórzyć klauzulę column_name:

    UTWÓRZ WIĘCEJ W INDEKSIE table_name (column_name1 […], column_name2 […]) …

  • Zwraca liczbę zadań, które odwołują się do tego harmonogramu.type_column_name
    Określa nazwę kolumna tabela type_column_name, który jest używany do przechowywania typu dokumentu dla varbinary, varbinary(max), lub image dokument. Identyfikator serwer miejsce docelowe.kolumna Typ musi być typu char, nchar, varchar, lub nvarchar.

    Określ typ kolumna type_column_name tylko wtedy, gdy column_name Określa, varbinary, varbinary(max) lub image kolumny, w którym dane są przechowywane jako dane binarne; w przeciwnym razie SQL Server Zwraca błąd.

    Uwaga

    Na indeksowanie czas, aparat Full-Text używa skrótu kolumna Typ każdego wiersza tabela do identyfikacji, które filtr wyszukiwania pełnotekstowego dla dokumentu w column_name. Data ostatniego zadanie uruchomienia wykonanie tego serwer miejsce docelowe.Aby uzyskać więcej informacji zobaczFiltry wyszukiwanie pełnego tekstu.

  • LANGUAGE language_term
    To język danych przechowywanych w column_name.

    language_term Czas trwania zadanie podczas ostatniego uruchomienia go na tym serwerze docelowym.Jeśli nie określono wartości, język domyślny SQL Server wystąpienie jest używane.

    Jeśli language_term określono reprezentuje język będzie używany do indeksu danych przechowywanych w char, nchar, varchar, nvarchar, text, a ntext kolumny. Język ten jest język domyślny używany w kwerendzie czas Jeśli language_term nie jest określony jako część predykat pełnego tekstu względem kolumna.

    Podczas określania ciągu parametr language_term odpowiada aliasowi wartości kolumny w tabeli systemowej syslanguages.Ciąg musi być otoczony znakami apostrofu, jak w zapisie**'language_term'**.Gdy parametr language_term jest określony jako liczba całkowita, stanowi obecny identyfikator LCID określający język.Jeśli parametr language_term jest określony jako liczba szesnastkowa, po znakach 0x należy wpisać szesnastkową wartość identyfikatora LCID.Wartość szesnastkowa nie może być dłuższa niż osiem cyfr, uwzględniając początkowe zera.

    Jeśli wartość jest w formacie znaków zestaw zestaw znaków dwubajtowych (zestaw znaków dwubajtowych) w zestawie SQL Server przekonwertuje go na standard Unicode.

    Zasoby, takie jak wyraz wyłączników i stemmers, musi być włączony dla danego języka, określony jako language_term. W następującym przykładzie polecenie wyświetla listę informacje o zadaniach dla zadań wieloserwerowych, stanowią własność producenta SQL Server w przypadku gdy zadanie jest włączone i wykonywanie.

    Use the sp_configure stored procedure to access information about the default full-text language of the Microsoft SQL Server instance.Aby uzyskać więcej informacji zobacz sp_configure (języka Transact-SQL) i default full-text language Option.

    W wypadku kolumn innych niż BLOB i XML zawierających dane tekstowe we różnych językach lub w sytuacjach, gdy język tekstu przechowywanego w kolumnie jest nieznany, właściwe może być użycie neutralnego (0x0) zasobu językowego.Jednak najpierw należy uświadomić sobie możliwe konsekwencje użycia neutralnego (0x0) zasobu językowego.Aby uzyskać informacje na temat możliwych rozwiązań i konsekwencji użycia neutralnego (0x0) zasobu językowego, zobacz Best Practices for Choosing a Language When Creating a Full-Text Index.

    W wypadku dokumentów zapisanych w kolumnach typu XML lub BLOB podczas indeksowania zostanie użyte kodowanie języka w dokumencie.Na przykład w kolumnach XML atrybut xml:lang w dokumentach XML będzie identyfikować język.W czasie kwerendy wartość określona uprzednio przez parametr language_term staje się domyślnym językiem używanym w kwerendach pełnotekstowych, chyba że parametr language_term jest określony jako część kwerendy pełnotekstowej.

  • KEY INDEX index_name
    Nazwa indeksu klucza w tabeli table_name.Indeks klucza KEY INDEX musi być unikatową kolumną z jednym kluczem niedopuszczającą wartości null.Należy wybrać najmniejszy unikatowy indeks klucza dla pełnotekstowego unikatowego klucza.W celu uzyskania największej wydajności dla klucza pełnotekstowego zalecany jest typ danych „liczba całkowita”.

  • fulltext_catalog_name
    Nazwa wykazu pełnotekstowego użytego w indeksie pełnotekstowym.Wykaz musi już istnieć w bazie danych.Ta klauzula jest opcjonalna.Jeśli nie zostanie określona, zostanie użyty domyślny wykaz.Jeśli domyślny wykaz nie istnieje, program SQL Server zwróci błąd.

  • grupa plików filegroup_name
    Tworzy określony indeks pełnotekstowy w określonej grupie plików.Grupa plików musi już istnieć.Jeśli klauzula FILEGROUP nie zostanie określona, indeks pełnotekstowy zostanie umieszczony w tej samej grupie plików co podstawowa tabela lub widok niepartycjonowanej tabeli lub w podstawowej grupie plików tabeli partycjonowanej.

  • Zmienia nazwę istniejącej kategorii zasady oparte na zasadach zarządzania.
    Określa, czy zmiany (aktualizacje, usunięcia lub wstawienia) wprowadzone w kolumnach tabeli objętych indeksem pełnotekstowym będą propagowane przez program SQL Server do indeksu pełnotekstowego.Zmiany danych wprowadzone za pomocą poleceń WRITETEXT i UPDATETEXT nie są odzwierciedlane w indeksie pełnotekstowym i nie są pobierane przez funkcję śledzenia zmian.

    • RĘCZNE
      Określa, czy rejestrowane zmiany muszą być propagowane ręcznie przez wywołanie instrukcji ALTER więcej indeks … START UPDATE zapełnianie Transact-SQL Instrukcja)Ręczne zapełnianie).Można użyć SQL Server Agent to wywołanie Transact-SQL Instrukcja co pewien czas.

    • AUTOMATYCZNE
      Określa, że śledzone zmiany będą automatycznie propagowane po zmodyfikowaniu danych w tabeli podstawowej (wypełnianie automatyczne).Wprawdzie zmiany są propagowane automatycznie, nie muszą one być odzwierciedlane natychmiastowo w indeksie pełnotekstowym.Wartość domyślna to AUTO.

    • W odniesieniu do systemowej bazy danych msdb, należy uruchomić sp_syspolicy_rename_policy_category.,
      Określa, że program SQL Server nie przechowuje listy zmian indeksowanych danych.Jeśli opcja NO POPULATION nie zostanie określona, program SQL Server wypełnia indeks całkowicie po jego utworzeniu.

      Opcji NO POPULATION można używać jedynie, gdy ustawienie CHANGE_TRACKING ma wartość OFF.Jeśli opcja NO POPULATION zostanie określona, program SQL Server nie wypełnia indeksu po jego utworzeniu.Indeks jest wypełniany jedynie po wykonaniu przez użytkownika polecenia ALTER FULLTEXT INDEX z klauzulą START FULL POPULATION lub START INCREMENTAL POPULATION.

  • STOPLIST [ = ] { OFF | SYSTEM | stoplist_name }
    Kojarzy pełnotekstową listę stoplist z indeksem.Indeks nie jest wypełniany jakimikolwiek tokenami niebędącymi częścią podanej listy stoplist.Jeśli lista STOPLIST nie zostanie określona, program SQL Server skojarzy systemową pełnotekstową listę stoplist z indeksem.

    • WYŁĄCZANIE
      Oznacza to jeśli baza danych jest AUTO_CLOSE ustawiona na ON lub baza danych inaczej jest w trybie offline.

    • SYSTEM
      Domyślna nazwa sortowanie dla bazy danych.

    • stoplist_name
      Nazwa sortowanie.

Remarks

Aby uzyskać więcej informacji na temat indeksy pełnotekstowe zobacz Configuring Full-Text Catalogs and Indexes for a Database.

Na xml kolumny, można utworzyć indeks pełnotekstowy, indeksuje zawartość elementów XML, ale ignoruje oznakowanie XML. ComparisonStyle jest mapą bitową, która jest obliczana przy użyciu następujących wartości.Ignoruj akcentuIgnoruj kanaAby uzyskać więcej informacji zobaczFull-Text Index on an XML Column.

Ignoruj szerokośćNa przykład domyślna 196609 jest wynikiem Ignoruj przypadek, Ignoruj Kana i Ignoruj szerokość opcji.

Zwraca stylu porównania.

Zwraca wartość 0 dla wszystkich ustawień sortowania binarne.IsAnsiNullDefault

IsAnsiNullsEnabled

IsAnsiPaddingEnabled

Wynik

Wyłączone

IsAnsiWarningsEnabled

IsArithmeticAbortEnabled

Wyłączone

Określony

Kwerendy są zakończone, gdy błąd dzielenia przez zero lub przepełnienie programu odbywa się podczas wykonywania kwerendy.

Włączone

Określony

IsAutoClose

Włączone

IsAnsiWarningsEnabled

IsArithmeticAbortEnabled

Aby uzyskać więcej informacji na temat wypełniania indeksy pełnotekstowe zobacz Full-Text Index Population.

Uprawnienia

optymalizator kwerendy tworzy jedno-kolumna statystyki, zgodnie z wymaganiami, aby poprawić wydajność kwerendy.

IsAutoShrinkIsAutoUpdateStatistics

Uwaga

Publicznego jest REFERENCE uprawnienia w odniesieniu do stoplist domyślny, który jest dostarczany w pakiecie SQL Server.

Przykłady

A.IsCloseCursorsOnCommitEnabled

W następującym przykładzie zostanie utworzony indeks unikatowy oparty na JobCandidateID Kolumna HumanResources.JobCandidate tabela z AdventureWorks Przykładowa baza danych. W przykładzie tworzy wykaz pełnotekstowy domyślne ft. Na koniec, w przykładzie tworzony jest indeks całego tekstu na Resume kolumna, za pomocą ft katalog i stoplist systemu.

USE AdventureWorks;
GO
CREATE UNIQUE INDEX ui_ukJobCand ON HumanResources.JobCandidate(JobCandidateID);
CREATE FULLTEXT CATALOG ft AS DEFAULT;
CREATE FULLTEXT INDEX ON HumanResources.JobCandidate(Resume) 
   KEY INDEX ui_ukJobCand 
   WITH STOPLIST = SYSTEM;
GO

B.Tworzenie indeksu pełnotekstowego z kilku kolumn tabeli

W poniższym przykładzie tworzony jest indeks pełnotekstowy na ReviewerName, EmailAddress, a Comments kolumny Production.ProductReview spis AdventureWorks Przykładowa baza danych. Dla każdej kolumna w przykładzie określono LCID z angielskim, 1033, który jest w języku dane w kolumnach. Ten indeks pełnotekstowy używa wykaz pełnotekstowy domyślne i istniejące unikatowy indeks klucz, PK_ProductReview_ProductReviewID. Zgodnie z zaleceniami, klucz ten indeks znajduje się na kolumna liczb całkowitych ProductReviewID.

USE AdventureWorks;
GO
CREATE FULLTEXT INDEX ON Production.ProductReview
( 
  ReviewerName
     Language 1033,
  EmailAddress
     Language 1033,
  Comments 
     Language 1033     
 ) 
KEY INDEX PK_ProductReview_ProductReviewID ; 
GO

C.Tworzenie indeksu pełnotekstowego bez wypełniania go

W następującym przykładzie zostanie utworzony wykaz pełnotekstowy documents_catalog, w AdventureWorks Przykładowa baza danych. IsNumericRoundAbortEnabledIndeks pełnotekstowy znajduje się na Document Kolumna Production.Document Tabela. W przykładzie określono LCID z angielskim, 1033, który jest w języku danych kolumna. Ten indeks pełnotekstowy używa wykaz pełnotekstowy domyślne i istniejące unikatowy indeks klucz, PK_Document_DocumentID. Zgodnie z zaleceniami, klucz ten indeks znajduje się na kolumna liczb całkowitych DocumentID. IsQuotedIdentifiersEnabledIsPublished

USE AdventureWorks;
GO
CREATE FULLTEXT CATALOG documents_catalog;
GO
CREATE FULLTEXT INDEX ON Production.Document
( Document 
    TYPE COLUMN FileExtension
    Language 1033 )
   KEY INDEX PK_Document_DocumentID
      ON documents_catalog
      WITH CHANGE_TRACKING OFF, NO POPULATION;
   GO

Tabele bazy danych mogą być publikowane dla migawka lub replikacji transakcyjnej, jeśli replikacja jest zainstalowany.

ALTER FULLTEXT INDEX ON Production.Document SET CHANGE_TRACKING AUTO;
GO

Historia zmian

Microsoft Learning

IsRecursiveTriggersEnabled

IsSubscribed