Udostępnij za pośrednictwem


Full-Text Index Population

Creating and maintaining a full-text index involves populating the index by using a process called a population (also known as a crawl).SQL Server supports the following types of population: pełne zapełnianie, należy zmienić opartej na śledzeniu automatyczne lub ręczne zapełnianie i przyrostowe zapełnianie oparte na sygnaturę czasową.

Pełne zapełnianie.

Podczas pełnego zapełnianie hasła indeksu są przeznaczone dla wszystkich wierszy z tabela lub widok indeksowany.Pełne zapełnianie indeks pełnotekstowy, kompilacje indeksowane zapisy dla wszystkich wierszy z podstawowej tabela lub widok indeksowany.

Domyślnie SQL Server nowy indeks pełnotekstowy wypełnia pełni zaraz po jej utworzeniu. Jednak pełne zapełnianie może zużywa znaczną ilość zasobów.Dlatego podczas tworzenia indeksu pełnotekstowego w okresach szczytowej, jest często najlepiej opóźnienie pełne zapełnianie, dopóki poza godzinami szczytu, szczególnie, jeżeli w tabela bazowa indeks pełnotekstowy jest duża.Katalog pełnego tekstu, do której należy dany indeks nie jest jednak można używać do wszystkich jego indeksów pełnego tekstu są wypełniane.To create a full-text index without populating it immediately, specify the CHANGE_TRACKING OFF, NO POPULATION clause in your CREATE FULLTEXT INDEX Transact-SQL statement.SQL Server will not populate the new full-text index until you execute an ALTER FULLTEXT INDEX Transact-SQL statement using the START FULL POPULATION or START INCREMENTAL POPULATION clause.Aby uzyskać więcej informacji zobacz przykłady "A.Tworzenie indeksu pełnotekstowego bez uruchamiania pełnej zapełnianie"i"B.Wykonywanie pełnej zapełnianie w tabela „ w dalszej części tego tematu.

Zmiana na śledzenie zapełnianie.

Opcjonalnie można użyć funkcji śledzenia zmian w celu zachowania indeksu pełnotekstowego po jego wstępnym pełnym wypełnieniu.Istnieje małe obciążenie skojarzone ze śledzeniem zmian, ponieważ program SQL Server zachowuje tabelę, w której śledzi zmiany w odniesieniu do tabeli podstawowej od czasu ostatniego wypełniania.Gdy jest używana funkcja śledzenia zmian, program SQL Server zachowuje rekord wierszy w tabeli podstawowej lub indeksowanym widoku, które zostały zmodyfikowane w wyniku operacji aktualizowania, usuwania lub wstawiania.Zmiany danych wprowadzone za pomocą poleceń WRITETEXT i UPDATETEXT nie są odzwierciedlane w indeksie pełnotekstowym i nie są pobierane przez funkcję śledzenia zmian.

Uwaga

Dla tabel zawierających timestamp kolumna, można użyć przyrostowe populacji.

Jeśli śledzenie zmian jest włączony podczas tworzenia indeksu SQL Server wypełnia całkowicie nowy indeks pełnotekstowy, natychmiast po jego utworzeniu. Po tej dacie zmiany są śledzone i przekazywana do indeksu całego tekstu.Istnieją dwa rodzaje zmian, automatycznej (AUTO CHANGE_TRACKING opcji) i ręcznego (MANUAL CHANGE_TRACKING opcja).Automatyczne śledzenie zmian jest zachowanie domyślne.

Typ śledzenia zmian, określa sposób indeks pełnotekstowy jest pusta, w następujący sposób:

  • Automatyczne zapełnianie

    Domyślnie lub Jeśli określisz AUTO CHANGE_TRACKING aparat Full-Text używa automatycznego zapełnianie na indeks pełnotekstowy.Po wykonaniu wstępnej pełnej zapełnianie, dane są modyfikowane w tabela bazowa, a śledzone zmiany są automatycznie przenoszone są śledzone zmiany.Indeks pełnotekstowy jest aktualizowane w tle, jednak tak, aby zmiany propagowany nie może być odzwierciedlane natychmiast w indeksie.

    Aby zestaw się śledzenie zmian z automatycznego zapełnianie

    Aby uzyskać więcej informacji zobacz przykład „ e.Zmienianie indeks pełnotekstowy umożliwia automatyczne zmian,"w dalszej części tego tematu.

  • Ręczne zapełnianie

    Jeśli określisz MANUAL CHANGE_TRACKING aparat Full-Text używa automatycznego zapełnianie na indeks pełnotekstowy.Po zakończeniu wstępnej pełnej zapełnianie, zmiany są śledzone, jak dane są modyfikowane w tabela bazowa.Jednak te nie są przenoszone na indeks pełnotekstowy aż do wykonać instrukcja ALTER więcej indeks … START UPDATE zapełnianie.Można użyć SQL Server Agent to wywołanie Transact-SQL Instrukcja co pewien czas.

    Aby uruchomić śledzenie zmian z zapełnianie ręczne

    Aby uzyskać więcej informacji zobacz przykłady "C.Tworzenie indeksu całego tekstu przy użyciu instrukcji zmienić śledzenia"i"D.Uruchamianie ręczne zapełnianie,"w dalszej części tego tematu.

Aby zestaw się śledzenie zmian za pomocą nie śledzenia zmian

Przyrostowe zapełnianie na podstawie sygnatury czasowej

zapełnianie przyrostowe jest mechanizm alternatywne dla ręcznie podczas wypełniania indeks pełnotekstowy.Można uruchomić przyrostowe zapełnianie do indeksu całego tekstu, który ma CHANGE_TRACKING MANUAL lub OFF.Jeśli pierwszy zapełnianie na indeks pełnotekstowy przyrostowe zapełnianie, indeksuje wszystkie wiersze, dzięki czemu jest równoważne z pełnym zapełnianie.Wymagania dotyczące zapełnianie przyrostowe jest że indeksowanej tabela musi mieć kolumna timestamp Typ danych. Jeśli timestamp Kolumna nie istnieje, nie można wykonać przyrostowej zapełnianie. Żądanie przyrostowe zapełnianie dla tabela, bez timestamp kolumna powoduje operację pełnego zapełnianie. Ponadto jeśli wszystkie metadane, które mają wpływ na indeks pełnotekstowy dla tabela uległy zmianie od czasu ostatniego zapełnianie, żądań przyrostowych zapełnianie są implementowane jako pełną zapełnianie.Obejmuje to zmiany metadane spowodowanych przez zmianę dowolnej kolumna, indeks lub definicji indeksu pełnotekstowego.

SQL Server używa timestamp Kolumna, aby określić wiersze, które uległy zmianie od czasu ostatniego zapełnianie. Następnie przyrostowe zapełnianie aktualizuje indeks pełnotekstowy dla wierszy dodane, usunięte lub zmodyfikowane po ostatnim zapełnianie lub podczas ostatniego zapełnianie jest w toku.Jeśli tabela napotka dużej liczby wstawia, używanie zapełnianie przyrostowe może być bardziej efektywny, przy użyciu ręcznego zapełnianie.

Na końcu zapełnianie rejestruje nowy aparat Full-Text timestamp wartość. Ta wartość jest największy timestamp wartość, która napotkał SQL programu zbierającego. Po uruchomieniu kolejnych zapełnianie przyrostowe zostanie użyta ta wartość.

Aby uruchomić przyrostowe zapełnianie, wykonać instrukcja ALTER indeks więcej przy użyciu klauzula START PRZYROSTOWE zapełnianie.

Aby zaplanować zadanie przyrostowe zapełnianie

Przykłady

Uwaga

W przykładach w niniejszej sekcji użycia Production.Document lub HumanResources.JobCandidate spis AdventureWorks Przykładowa baza danych. Aby uzyskać informacje dotyczące tych tabel, zobacz tabela dokumentu i Tabela JobCandidate (AdventureWorks).

A.Tworzenie indeksu pełnotekstowego bez uruchamiania pełnej zapełnianie

W poniższym przykładzie tworzony jest indeks pełnotekstowy na Production.Document tabela z AdventureWorks Przykładowa baza danych. W tym przykładzie WITH CHANGE_TRACKING OFF, NO zapełnianie opóźnienia wstępnej pełnej zapełnianie.

CREATE UNIQUE INDEX ui_ukDoc ON Production.Document(DocumentID);
CREATE FULLTEXT CATALOG AW_Production_FTCat;
CREATE FULLTEXT INDEX ON Production.Document
(
    Document                         --Full-text index column name 
        TYPE COLUMN FileExtension    --Name of column that contains file type information
        Language 1033                 --1033 is LCID for the English language
)
    KEY INDEX ui_ukDoc
    ON AW_Production_FTCat
    WITH CHANGE_TRACKING OFF, NO POPULATION;
GO

B.Uruchamianie pełnego zapełnianie w tabela

Poniższy przykład działa na pełne zapełnianie Production.Document tabela z AdventureWorks Przykładowa baza danych.

ALTER FULLTEXT INDEX ON Production.Document
   START FULL POPULATION;

C.Tworzenie indeksu całego tekstu przy użyciu ręcznego śledzenia zmian

W następującym przykładzie zostanie utworzony indeks całego tekstu, który będzie używał zmian ręczne zapełnianie na HumanResources.JobCandidate tabela z AdventureWorks Przykładowa baza danych.

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 CHANGE_TRACKING=MANUAL;
GO

D.Uruchamianie ręczne zapełnianie

W poniższym przykładzie jest uruchamiana ręcznie zapełnianie na indeks pełnotekstowy śledzone zmiany z HumanResources.JobCandidate tabela z AdventureWorks Przykładowa baza danych.

USE AdventureWorks;
GO
ALTER FULLTEXT INDEX ON HumanResources.JobCandidate START UPDATE POPULATION;
GO

E.Zmienianie indeks pełnotekstowy umożliwia rejestrowanie automatycznych zmian

Indeks całego tekstu zmienia się w następującym przykładzie HumanResources.JobCandidate spis AdventureWorks Przykładowa baza danych umożliwia śledzenie zapełnianie automatycznych zmian.

USE AdventureWorks;
GO
ALTER FULLTEXT INDEX ON HumanResources.JobCandidate SET CHANGE_TRACKING AUTO;
GO