alter fulltext INDEX (Transact-sql)
Bir tam metin dizini özelliklerini değiştirir.
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 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
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;
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;
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
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;
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;
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