Aracılığıyla paylaş


Tam metin dizini popülasyon

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: tam popülasyonu, değişiklik izleme tabanlı otomatik veya el ile popülasyon ve zaman damgası tabanlı artımlı popülasyon.

Tam popülasyonu

Tam bir popülasyon sırasında bir tablo veya dizinli görünüm, tüm satırlar için dizin girişlerini yerleşiktir.Tam bir popülasyon full-text Index, yapýlar girişleri temel tablo veya dizinli görünüm tüm satırlar için dizin.

Varsayılan olarak, SQL Server Yeni bir tam metin dizin oluşturulduktan hemen tamamen dolduran.Ancak, tam bir popülasyon önemli miktarda kaynakları tüketebilir.Bu nedenle, yoğun dönemlerde bir tam metin dizini oluştururken, genellikle tam geciktirmek için en iyi olur popülasyon kadar yoğun olmayan saat temel tablo tam metin dizini, özellikle büyük olması durumunda,.Tüm tam metin dizinlerini doldurulur kadar ancak, dizin ait olduğu tam metin Kataloğu kullanılamaz.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.Daha fazla bilgi için bkz: "a. örnekleriTam bir popülasyon çalıştırmadan tam metin dizini oluşturma" ve "b.Tam bir popülasyon tablo üzerinde çalışan" Bu konuda daha sonra.

Değişiklik izleme tabanlı popülasyonu

İsteğe bağlı olarak, değişiklik izleme, ilk tam popülasyon sonra tam metin dizini korumak için kullanabilirsiniz.Küçük bir ek yükü nedeniyle izleme değişikliği ile ilişkili olduğu SQL Server tutan bir tablo da, bu yana temel tablo için değişiklikleri izlerson popülasyon. Değişiklik izleme kullanıldığında, SQL Server Bankası satırları kaydını tutar tablo , güncelleştirmeler, siler veya ekler. tarafından değiştirilen görünümü dizine veyaWRITETEXT ve updatetext aracılığıyla veri değişiklikleri tam metin dizini içinde yansıtılır ve değişiklik izleme toplanmaz.

Not

Tablolar içeren bir timestamp sütun, artan yerleştirme kullanabilirsiniz.

Dizin oluşturma sırasında değişiklik izleme etkinleştirildiğinde SQL Server Yeni tam metin dizin oluşturulduktan hemen sonra tamamen dolduran.Bundan sonra değişiklikler izlenir ve tam metin dizinine yayılır.(CHANGE_TRACKING otomatik seçeneği) değişiklik izleme, otomatik ve el ile (CHANGE_TRACKING el ile seçeneği) iki türü vardır.Otomatik değişiklik izleme varsayılan davranıştır.

Değişiklik izleme nasıl tam metin dizini, aşağıdaki gibi doldurulur belirler:

  • Otomatik popülasyon

    Varsayılan olarak, veya CHANGE_TRACKING otomatik belirtirseniz, tam-metin arama motoru otomatik olarak kullandığı popülasyon üzerinde tam metin dizini.İlk tam popülasyon işlemi tamamlandıktan sonra veri değiştirildiğinde değişiklikler izlenir temel tablo, ve izlenen değişiklikleri otomatik olarak yayılır.Tam metin dizini dizin içinde yayılan değişiklikleri hemen yansıtılmasını böylece arka planda ancak güncelleştirilir.

    İçin küme kadar otomatik popülasyon ile değişiklikleri izleme

    Daha fazla bilgi için bkz: "e. örneğiOtomatik değişiklik izleme için tam metin dizini değiştirmeden " Bu konuda daha sonra.

  • El ile popülasyon

    CHANGE_TRACKING el ile belirtmeniz durumunda, tam-metin arama motoru el ile popülasyon üzerinde tam metin dizini kullanır.İlk tam popülasyon işlemi tamamlandıktan sonra veri değiştirildiğinde değişiklikler izlenir temel tablo.Ancak, bunlar için tam metin dizini dek yayılmaz yürütmek bir alter Full-Text Index … Güncelleştirme POPÜLASYON başlatın deyim.Kullanabileceğiniz SQL Server öğesine çağrı bu Transact-SQL düzenli deyim.

    Değişiklikleri el ile popülasyon ile izlemeye başlamak için

    Daha fazla bilgi için bkz: "c. örnekleriTam metin dizini el ile değişiklik izleme oluşturma" ve "d.El ile popülasyon çalıştırmadan " Bu konuda daha sonra.

Değişiklik izlemeyi devre dışı bırakmak için

Zaman damgası tabanlı artımlı popülasyon

Bir artımlı popülasyon, el ile bir tam metin dizini yerleştirmek için alternatif bir mekanizmadır.CHANGE_TRACKING el ile ya da off için küme olan bir tam metin dizini için bir artımlı popülasyon çalıştırabilirsiniz.İlk nüfus üzerinde bir tam metin dizini bir artımlı popülasyon ise, tüm satırları, tam bir popülasyon için eşdeğer hale getirme dizin oluşturur.

Dizinli tablo olmalıdır gereksinimdir artımlı popülasyon için bir sütun , timestamp veri türü.Yoksa bir timestamp sütun yok, artımlı popülasyon gerçekleştirilemez.Artımlı popülasyon üzerinde olmayan bir tablo için bir istek bir timestamp sütun sonuçlar tam popülasyon operasyon.Ayrıca, tablo için tam metin dizini etkiler herhangi bir meta veriler bu yana son nüfus değişmişse, artımlı popülasyon isteklerini tam yerleştirme uygulanır.Bu, herhangi bir sütun, dizin veya tam metin dizini tanımları değiştirme tarafından neden meta veriler değişiklikleri içerir.

SQL Serverkullandığı timestamp bu yana değişti satırları tanımlamak için sütunson popülasyon. Artımlı popülasyon eklenen, silinen veya değiştirilme tarihi veya son nüfus sonra son nüfus sürerken satır için tam metin dizini güncelleştirir.Bir tablo ekler yüksek miktarda karşılaşırsa, artımlı popülasyon daha etkili olabilir, el ile popülasyon kullanma.

Bir popülasyon sonunda, tam-metin arama motoru kayıtları yeni bir timestamp değer.Bu değer en büyük. timestamp sql Toplayıcı karşılaştı değer.Bu değer, bir sonraki artımlı popülasyon başladığında kullanılacak.

Bir artımlı popülasyon çalıştırmak için Başlat ARTIMLI POPÜLASYON yan tümce tümce tümcesini kullanarak bir Full-Text Index alter deyim yürütmek.

Artımlı bir zamanlama popülasyon iş

Örnekler

Not

Bu örnekler bölümünde kullanım Production.Document veya HumanResources.JobCandidate tablo , AdventureWorks2008R2 örnek veritabanı.

A.Tam bir popülasyon çalıştırmadan tam metin dizini oluşturma

Aşağıdaki örnek bir tam metin dizini oluşturur Production.Document tablo , AdventureWorks2008R2 örnek veritabanı.Bu örnek ile CHANGE_TRACKING kapalı, ilk tam popülasyon geciktirmek için Hayır POPÜLASYON kullanır.

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.Tablo üzerinde tam bir popülasyon çalıştıran

Aşağıdaki örnekte tam bir popülasyon üzerinde çalıştığı Production.Document tablo , AdventureWorks2008R2 örnek veritabanı.

ALTER FULLTEXT INDEX ON Production.Document
   START FULL POPULATION;

C.El ile değişiklik izleme ile bir tam metin dizini oluşturma

Aşağıdaki örnek, değişiklik üzerinde el ile popülasyon ile izleme kullanacağı bir tam metin dizini oluşturur HumanResources.JobCandidate tablo , AdventureWorks2008R2 örnek veritabanı.

USE AdventureWorks2008R2;
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.El ile popülasyon çalıştıran

Aşağıdaki örnek, değişiklik izlenen tam metin dizini üzerinde el ile popülasyon çalışır HumanResources.JobCandidate tablo , AdventureWorks2008R2 örnek veritabanı.

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

E.Otomatik değişiklik izleme kullanmak için tam metin dizini değiştirme

Aşağıdaki örnek, tam metin dizini değiştirir HumanResources.JobCandidate tablo , AdventureWorks2008R2 değişiklik izleme otomatik popülasyon ile kullanılacak örnek veritabanı

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