alter fulltext INDEX (Transact-sql)

Bir tam metin dizini özelliklerini değiştirir.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

ALTER FULLTEXT INDEX ON table_name
   { ENABLE 
   | DISABLE
   | SET CHANGE_TRACKING [ = ] { MANUAL | AUTO | OFF }
   | ADD ( column_name 
     [ TYPE COLUMN type_column_name ] 
     [ LANGUAGE language_term ]
     [ STATISTICAL_SEMANTICS ]
 [,...n] )
     [ WITH NO POPULATION ]
   | ALTER COLUMN column_name
     { ADD | DROP } STATISTICAL_SEMANTICS
     [ WITH NO POPULATION ]
   | DROP ( column_name [,...n] )
     [ WITH NO POPULATION ] 
   | START { FULL | INCREMENTAL | UPDATE } POPULATION
   | {STOP | PAUSE | RESUME } POPULATION 
   | SET STOPLIST [ = ] { OFF| SYSTEM | stoplist_name }
     [ WITH NO POPULATION ] 
   | SET SEARCH PROPERTY LIST [ = ] { OFF | property_list_name }
     [ WITH NO POPULATION ] 
   }
[;]

Bağımsız değişkenler

  • table_name
    Tablo adı veya sütun veya sütunları tam metin dizininde yer içeren görünümü dizine. Veritabanı ve tablo sahibinin adı belirtmek isteğe bağlıdır.

  • ETKİNLEŞTİRME | DEVRE DIŞI BIRAKMA
    Söyler SQL Serveriçin tam metin dizin verileri toplamak kullanılıp table_name. ETKİNLEŞTİR tam metin dizin etkinleştirir; Tam metin dizini devre dışı bırakır devre dışı bırakın. Dizin devre dışı durumdayken tablonun tam metin sorguları desteklemez.

    Bir tam metin dizini devre dışı bırakılması, değişiklik izlemeyi devre dışı ancak etkin kullanarak istediğiniz zaman yeniden etkinleştirebilirsiniz tam metin dizini tutmak sağlar. Tam metin dizini devre dışı bırakıldığında, tam metin dizini meta verileri sistem tabloları kalır. CHANGE_TRACKING (otomatik veya el ile güncelleştirme) etkin durumda ise, tam metin dizini devre dışı, dizin durumunu donuyor, herhangi bir sürekli tarama durur ve tablo verilerinde yeni değişiklikler izlenen veya dizinine yayılır.

  • ADVENTUREWORKSSET CHANGE_TRACKING {MANUAL | AUTO | KAPALI}
    Tablo sütunları tam metin dizin tarafından kapsamında yapılan değişiklikler (güncelleştirmeler, siler veya ekler) tarafından yayılma olup olmadığını belirtir SQL Servertam metin dizin. Veri değişiklikleri WRITETEXT ve updatetext üzerinden tam metin dizini içinde yansıtılmaz ve değişiklik izleme ile çekilen değil.

    [!NOT]

    Değişiklik izleme ve hayır nüfus ile bilgi için etkileşim hakkında "Uyarılar" konusuna bakın. Bu konudaki.

  • El ile
    İzlenen değişiklikleri el ile yerel olarak arayarak … alter fulltext INDEX aktarılacaktır olduğunu belirtir BAŞLANGIÇ güncelleştirme nüfus Transact-SQLdeyimi (el ile popülasyon). Sen-ebilmek kullanma SQL ServerBu çağrı için aracı Transact-SQLdeyimi belirli aralıklarla.

  • AUTO
    İzlenen değişiklikleri otomatik olarak veri tablo değiştirilmiş olarak aktarılacaktır belirtir (Otomatik popülasyon). Değişiklikler otomatik olarak dağıtılır, ancak bu değişiklikler hemen tam metin dizini içinde yansıtılmamış. TÜM varsayılan olduğunu.

  • OFF
    Belirleyen SQL Serverdeğişikliklerin listesi oluşturulmuş veri tutmayacaktır.

  • EKLE | BIRAKcolumn_name
    Eklenebilir veya tam metin dizinden silinmiş sütunları belirtir. The column or columns must be of type char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary, or varbinary(max).

    AÇILAN yan etkinleştirilmiş olan sütunlar üzerinde daha önce tam metin dizinlemesi için kullanın.

    SÜTUN türü ve dili bu özellikleri ayarlamak için add yan tümcesi ile kullanma column_name. Bir sütun eklendiğinde, tam metin dizin tablo üzerinde çalışmak amacıyla bu sütunda tam metin sorguları yeniden yerleştirilmesi gerekir.

    [!NOT]

    Sonra bir sütun eklendiğinde veya tam metin dizinden bırakılan olup olmadığını tam metin dizini doldurulur, değişiklik izleme etkin olup olmadığını ve WITH hayır popülasyon belirtmiş olmasına bağlıdır. Daha fazla bilgi için "Uyarılar" konusuna bakın. Bu konudaki.

  • SÜTUN TÜRÜtype_column_name
    Bir tablo sütunu adını belirtir type_column_name, yani belge türü için tutmak için kullanılan bir varbinary, varbinary(max), ya imagebelge. Bu sütun tipi sütun olarak bilinen, kullanıcı tarafından sağlanan dosya uzantısı (.doc, .pdf, .xls vb.) içerir. Tür sütununda olmalıdır char, nchar, varchar, ya nvarchar.

    SÜTUN türü belirtmek type_column_nameyalnızca column_namebelirtir bir varbinary, varbinary(max)ya image, ikili veri olarak; verilerin depolandığı sütunu, Aksi takdirde, SQL Serverhata veriyor.

    [!NOT]

    Dizin oluşturma zaman, tam metin altyapısı kısaltmasını her tablo satırı tür sütununda belge içinde kullanmak için hangi tam metin arama filtresini tanımlamak için kullandığı column_name. Filtre belge ikili akışı olarak yükler, biçimlendirme bilgilerini kaldırır ve metin belgeden sözcük ayırıcı bileşene gönderir. Daha fazla bilgi için, bkz. Yapılandırmak ve arama filtrelerini yönetme.

  • DİLlanguage_term
    Depolanan veriler dil column_name.

    language_termİsteğe bağlı ve bir dize, tamsayı veya onaltılık değeri, bir dil yerel ayar tanıtıcısını (LCID) karşılık belirtilebilir. Eğer language_termbelirtilirse, temsil ettiği dil arama koşulu öğelerin tümüne uygulanır. Herhangi bir değer belirtilmezse, varsayılan tam metin dilini SQL Serverörneği kullanılır.

    Kullanım sp_configure saklı yordamı varsayılan tam metin dili hakkında bilgilere erişmek için SQL Serverörneği.

    Bir dizge olarak belirtilen language_termkarşılık ad sütun değeri syslanguages sistem tablosu. Dize gibi tek tırnak işareti içine alınmalıdır 'language_term'. Bir tamsayı olarak belirtildiğinde language_termdilini tanımlayan gerçek LCID '. Onaltılı değer olarak belirtildiğinde language_term0 x LCID onaltılık değerini izliyor. Onaltılık değeri, sekiz basamak, öndeki dahil aşmamalıdır.

    Değer ise çift baytlı karakter kümesi (dbcs) biçimi, SQL ServerUnicode'a dönüştürür.

    Sözcük ayırıcılarını ve sözcük köklerini, gibi kaynakların etkin, belirtilen dil için language_term. Bu tür kaynakları belirtilen dil desteklemiyorsa SQL Serverhata veriyor.

    Birden fazla dilde metin içeren olmayan blob ve olmayan xml sütunları veya sütunda depolanan metnin dilini bilinmeyen durumlar için tarafsız (0x0) dil kaynağı kullanın. xml veya blob türü sütunlarda depolanan belgeler için zaman dizin oluşturma belge içinde kodlama dili kullanılacaktır. Örneğin, xml sütun, xml belgeleri XML: lang özniteliğinde dili tanımlar. Sorgu zaman değer önceden belirtilen language_termsürece tam metin sorguları için kullanılan varsayılan dil olur language_termbir tam metin sorgu bir parçası belirtilir.

  • STATISTICAL_SEMANTICS
    Ek anahtar sözcük ve belge istatistiksel semantik dizin oluşturma işleminin bir parçası olan benzerliği dizinlerini oluşturur. Daha fazla bilgi için, bkz. Semantik arama (SQL Server).

  • [ ,...n]
    Birden çok sütun Ekle, alter veya drop yan tümceleri için belirtilebilir gösterir. Birden çok sütun belirtildiğinde, bu sütunları virgülle ayırın.

  • HİÇBİR POPÜLASYON İLE
    Tam metin dizin Ekle veya drop sütun işlem veya bir set STOPLIST işlemi sonra doldurulur değil olduğunu belirtir. Dizin, yalnızca kullanıcı bir başlangıç çalıştırırsa doldurulur...NÜFUS komutu.

    Hayır popülasyon belirtildiğinde, SQL Serverdizini doldurmaz. Yalnızca kullanıcı alter fulltext dizin verir sonra dizini doldurulur...POPÜLASYON start komutu. Hayır popülasyon belirtildiğinde, SQL Serverdizin doldurur.

    CHANGE_TRACKING etkin ve WITH hayır popülasyon belirtilirse, SQL Serverhata veriyor. CHANGE_TRACKING etkin ve WITH hayır popülasyon belirtilmemişse, SQL Servertam bir popülasyon üzerinde dizin yapar.

    [!NOT]

    Değişiklik izleme ve hayır nüfus ile etkileşim hakkında daha fazla bilgi için "Uyarılar" konusuna bakın. Bu konudaki.

  • {EKLE | BIRAK} STATISTICAL_SEMANTICS
    Etkinleştirir veya istatistiksel semantik belirtilen sütunlar için Endeksleme devre dışı bırakır. Daha fazla bilgi için, bkz. Semantik arama (SQL Server).

  • BAŞLANGIÇ {FULL|INCREMENTAL|GÜNCELLEŞTİRME} NÜFUS
    Söyler SQL Servertam metin dizini popülasyon başlatmak için table_name. Eğer bir tam metin dizini popülasyon zaten sürüyor, SQL Serverbir uyarı verir ve yeni nüfus başlamaz.

    • TAM
      Tablodaki her satır satır zaten dizine bile tam metin dizinlemesi için alınması belirtir.

    • ARTIMLI
      Beri son nüfus tam metin dizinlemesi için alınması, yalnızca değiştirilen satırları belirtir. ARTIMLI tablo türü bir sütun varsa uygulanabilir timestamp. Tam metin kataloğu bir tablodaki bir sütun türü yoksa timestamp, tam bir popülasyon tablo uğrar.

    • GÜNCELLEŞTİRME
      Tüm eklemeler, güncelleştirmeleri veya silmeleri işleme değişiklik izleme dizin güncelleştirildiği son etkinlikler belirtir. Değişiklik izleme popülasyon bir tabloda etkinleştirilmiş olması gerekir, ancak arka plan güncelleştirme dizin veya otomatik değişiklik izleme açık olmalı değil.

  • {DUR | DURAKLAT | ÖZGEÇMİŞ} NÜFUS
    Durdurur veya devam eden herhangi bir popülasyon duraklar; durdurur veya duraklatıldı herhangi bir popülasyon sürdürür.

    NÜFUSUNUN DURDURABİLİR, otomatik değişiklik izleme veya arka plan güncelleştirme dizin durdurmaz. Değişiklik izlemeyi durdurmak için set CHANGE_TRACKING off kullanın.

    pause nüfus ve özgeçmiş NÜFUSUNUN yalnızca tam yerleştirme için kullanılabilir. Nerede durdu tarama gelen gezinmeyi diğer nüfus devam çünkü onlar diğer nüfus türleri için uygun değildir.

  • SET STOPLIST {OFF| SİSTEM | stoplist_name }
    Eğer herhangi bir dizini ile ilişkili tam metin stoplist değiştirir.

    • OFF
      Hiçbir stoplist tam metin dizini ile ilişkili olduğunu belirtir.

    • SİSTEM
      Varsayılan tam metin sistem STOPLIST bu tam metin dizini için kullanılması gerektiğini belirtir.

    • stoplist_name
      Tam metin dizini ile ilişkilendirilecek stoplist adını belirtir.

    Daha fazla bilgi için, bkz. Yapılandırma ve Stopwords ve Stoplists için tam metin araması yönetme.

  • SET ARAMA ÖZELLİK LİSTESİ {OFF | property_list_name} [İle hiçbir popülasyon]
    Dizin ile ilişkili arama özelliği listesinde varsa değiştirir.

    • OFF
      Özellik listesi yok tam metin dizini ile ilişkili olduğunu belirtir. Bir tam metin dizini (alter fulltext INDEX... arama özelliği liste dışı açtığınızda set arama özelliği liste off), temel tabloda arama özelliği artık mümkün.

      Varolan arama özelliği listeyi açtığınızda varsayılan olarak tam metin dizini otomatik olarak yeniden doldurur. Ne zaman arama özellik listesini Kapat WITH hayır popülasyon belirtirseniz, otomatik repopulation oluşmaz. Ancak, sonunda tam bir popülasyon üzerinde bu tam metin dizini sohbettir çalıştırmanızı öneririz. Tam metin dizini yeniden tam metin dizini daha küçük ve daha verimli hale düştü arama özelliği, özellik özgü meta verileri kaldırır.

    • property_list_name
      Tam metin dizini ile ilişkili arama özellik listesinin adını belirtir.

      Bir tam metin dizini için bir arama özelliği liste ekleme, ilgili arama özelliği liste için kayıtlı arama özellikleri dizin için dizin yeniden gerektirir. Arama özelliği listesine eklerken WITH hayır popülasyon belirtirseniz, nüfusu indeks, uygun bir zamanda çalıştırmanız gerekir.

      Önemli notÖnemli

      Tam metin dizini daha önce farklı bir arama ile ilgili ise bu dizin tutarlı bir duruma getirmek için yeniden özellik listesi olmalıdır. Dizin hemen kesilir ve tam bir popülasyon çalıştırılıncaya kadar boştur. Yeniden zaman arama özellik listesinin değiştirilmesi neden olur hakkında daha fazla bilgi için "Uyarılar" konusuna bakın. Bu konudaki.

      [!NOT]

      Aynı veritabanında birden fazla tam metin dizini arama özellik listesi ilişkilendirebilirsiniz.

      To find the search property lists on the current database

      Arama özelliği listeleri hakkında daha fazla bilgi için bkz: Arama belge özellikleri ile arama özellik listeleri.

Açıklamalar

Değişiklik izleme ve hayır nüfus parametresi etkileşimler

Tam metin dizini olup doldurulur değişiklik izleme etkin olup olmadığını ve WITH hayır popülasyon alter fulltext INDEX deyiminde belirtmiş olmasına bağlıdır. Aşağıdaki tablo, onların etkileşim sonucu özetler.

Değişiklik izleme

HİÇBİR POPÜLASYON İLE

Sonuç

Etkin değil

Belirtilmemiş

Tam bir popülasyon dizin üzerinde gerçekleştirilir.

Etkin değil

Belirtilen

Dizinin hiçbir popülasyon alter fulltext INDEX kadar oluşur...POPÜLASYON başlatın bildiri yayınladı.

Etkin

Belirtilen

Bir hata oluşturulur ve dizin değişmiş değil.

Etkin

Belirtilmemiş

Tam bir popülasyon dizin üzerinde gerçekleştirilir.

Tam metin dizinlerini doldurma hakkında daha fazla bilgi için bkz: Tam metin dizinlerini doldurma.

Arama özelliği liste değiştirme nedenleri dizini yeniden oluşturuluyor

İlk kez bir tam metin dizini bir arama özelliği listesiyle ilişkili dizin dizin özelliği özel arama terimleri için yeniden yerleştirilmesi gerekir. Varolan dizin verileri kesilmiş değil.

Tam metin dizini farklı özellik listesi ile ilişkilendirirseniz, ancak dizin yeniden oluşturulur. Varolan tüm verileri kaldırma tam metin dizini hemen yeniden keser ve dizin yeniden yerleştirilmesi gerekir. Süre nüfus ilerledikçe, tam metin sorguları temel tablo arama yalnızca zaten nüfusa endeksli tablo satırları. Repopulated dizin verileri meta verileri yeni eklenen arama özelliği listesinde kayıtlı özelliklerini içerir.

Yeniden neden senaryolar aşağıdakileri içerir:

  • Geçiş doğrudan için farklı arama özellik listesi (bkz "Senaryo a," daha sonra bu bölümde).

  • Arama özelliği liste dışı kapatma ve sonra dizin ile ilişkilendirerek arama özelliği (bakınız "b senaryosu" daha sonra bu bölümde)

[!NOT]

Nasıl tam metin arama çalışmaları ile arama özelliği listeleri hakkında daha fazla bilgi için bkz: Arama belge özellikleri ile arama özellik listeleri. Tam yerleştirme hakkında daha fazla bilgi için bkz: Tam metin dizinlerini doldurma.

Senaryosu a: geçiş doğrudan farklı arama özelliği listeye

  1. Bir tam metin dizini oluşturulur table_1bir arama özelliği liste spl_1:

    CREATE FULLTEXT INDEX ON table_1 (column_name) KEY INDEX unique_key_index 
       WITH SEARCH PROPERTY LIST=spl_1, 
       CHANGE_TRACKING OFF, NO POPULATION; 
    
    CREATE FULLTEXT INDEX ON table_1 (column_name) KEY INDEX unique_key_index 
       WITH SEARCH PROPERTY LIST=spl_1, 
       CHANGE_TRACKING OFF, NO POPULATION; 
    
  2. Tam bir popülasyon üzerinde tam metin dizini çalıştırılır:

    ALTER FULLTEXT INDEX ON table_1 START FULL POPULATION;
    
    ALTER FULLTEXT INDEX ON table_1 START FULL POPULATION;
    
  3. Tam metin dizini daha sonra farklı arama özellik listesi, ilişkili spl_2, aşağıdaki deyimi kullanarak:

    ALTER FULLTEXT INDEX ON table_1 SET SEARCH PROPERTY LIST spl_2;
    
    ALTER FULLTEXT INDEX ON table_1 SET SEARCH PROPERTY LIST spl_2;
    

    Bu ifade, tam bir popülasyon, varsayılan davranışı neden olur. Ancak, bu nüfus başlamadan önce tam metin altyapısı otomatik olarak dizin keser.

Senaryo b: arama özelliği liste dışı açma ve sonra dizin herhangi bir arama özelliği listeyle ilişkilendirerek

  1. Bir tam metin dizini oluşturulur table_1bir arama özelliği liste spl_1, ardından bir otomatik full popülasyon (varsayılan davranış):

    CREATE FULLTEXT INDEX ON table_1 (column_name) KEY INDEX unique_key_index 
       WITH SEARCH PROPERTY LIST=spl_1; 
    
    CREATE FULLTEXT INDEX ON table_1 (column_name) KEY INDEX unique_key_index 
       WITH SEARCH PROPERTY LIST=spl_1; 
    
  2. Arama özellik listesi aşağıdaki gibi kapalı:

    ALTER FULLTEXT INDEX ON table_1 
       SET SEARCH PROPERTY LIST OFF WITH NO POPULATION; 
    
    ALTER FULLTEXT INDEX ON table_1 
       SET SEARCH PROPERTY LIST OFF WITH NO POPULATION; 
    
  3. Bir kez daha aynı arama özelliği liste ya da başka bir ilişkili tam metin dizini olur.

    Örneğin aşağıdaki deyimi ile özgün arama özellik listesi, tam metin dizini uygulamasına spl_1:

    ALTER FULLTEXT INDEX ON table_1 SET SEARCH PROPERTY LIST spl_1;
    
    ALTER FULLTEXT INDEX ON table_1 SET SEARCH PROPERTY LIST spl_1;
    

    Bu ifade, tam bir popülasyon, varsayılan davranış başlar.

    [!NOT]

    Yeniden aynı zamanda farklı arama özellik listesi için gibi gerekli olacağını spl_2.

İzinler

Kullanıcı gerekir alter tablosu veya dizin oluşturulmuş görünüm izniniz veya bir üyesi olmanız sysadmin sabit sunucu rolü, ya da db_ddladmin veya db_owner veritabanı rolleri sabit.

set STOPLIST belirtilirse, kullanıcı stoplist üzerinde başvurular izninizin olması gerekir. set arama özellik listesi belirtilirse, kullanıcı arama özelliği listede başvurular izninizin olması gerekir. Sahibi alter fulltext catalog izinleri varsa belirtilen stoplist veya arama özelliği liste sahibi başvurular izni verebilirsiniz.

[!NOT]

Kamu ile birlikte gelen varsayılan stoplist başvurular izni SQL Server.

Örnekler

A.El ile değişiklik izlemeyi ayarlama

Aşağıdaki örnek, tam metin dizini izleme el ile değişiklik ayarlar JobCandidatetablo AdventureWorksveritabanı.

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

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

B.Özellik listesi bir tam metin dizini ile ilişkilendirme

Aşağıdaki örnek associates DocumentPropertyListözellik listesi ile tam metin dizini Production.Documenttablo AdventureWorksveritabanı. Bu alter fulltext INDEX deyimi arama özelliği listesinde set yan tümcesi varsayılan davranışı tam bir popülasyon başlar.

[!NOT]

Bir örnek oluşturur DocumentPropertyListözellik listesi, bkz: Arama özellik listesi (Transact-sql) oluştur.

USE AdventureWorks;
GO
ALTER FULLTEXT INDEX ON Production.Document 
   SET SEARCH PROPERTY LIST DocumentPropertyList; 
GO

USE AdventureWorks;
GO
ALTER FULLTEXT INDEX ON Production.Document 
   SET SEARCH PROPERTY LIST DocumentPropertyList; 
GO

C.Bir arama özelliği liste kaldırma

Aşağıdaki örnek DocumentPropertyListtam metin dizini listeden özelliği Production.Documenttablo AdventureWorksveritabanı. Bu örnekte, böylece WITH hayır popülasyon seçeneği belirtilen dizinden, özellikleri kaldırmak için hiç acele yoktur. Ancak, arama özelliği düzeyi artık bu tam metin dizini karşı izin verilir.

USE AdventureWorks;
GO
ALTER FULLTEXT INDEX ON Production.Document 
   SET SEARCH PROPERTY LIST OFF WITH NO POPULATION; 
GO

USE AdventureWorks;
GO
ALTER FULLTEXT INDEX ON Production.Document 
   SET SEARCH PROPERTY LIST OFF WITH NO POPULATION; 
GO

D.Tam bir popülasyon başlangıç

Aşağıdaki örnek tam metin dizini üzerinde tam bir popülasyon başlar JobCandidatetablo AdventureWorksveritabanı.

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

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

Ayrıca bkz.

Başvuru

içinsys.fulltext_indexesKatalog (Transact-sql)

fulltext INDEX (Transact-sql) oluştur

fulltext INDEX (Transact-sql) bırak

Kavramlar

Tam metin araması (SQL Server)

Tam metin dizinlerini doldurma