Aracılığıyla paylaş


FULLTEXT INDIS (Transact-SQL) CREATE

Bir tablo ya da veritabanında dizinli görünüm bir tam metin dizini oluşturur.Yalnızca bir tam metin dizini her tablo için izin veya görünümü dizine ve her bir tam metin dizini tek bir tablo veya dizinli görünüm için geçerlidir.

Bir tam metin dizini, en fazla 1024 sütun içerebilir.

Topic link iconTransact-SQL sözdizimi kuralları

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 }
  }

Bağımsız değişkenler

  • table_name
    Tablo adı veya Görüntüle, sütun veya sütunları tam metin dizininde yer içeren dizine.

  • column_name
    Tam metin dizininde yer sütun adıdır.Yalnızca sütun türü char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary, ve varbinary(max) tam metin araması dizini. Birden çok sütun belirtmek için , yineleme column_name yan tümce aşağıdaki gibi:

    DİZİN ÜZERİNDE fulltext OLUŞTURMA table_name (column_name1 […], column_name2 […]) …

  • TYPE SÜTUN type_column_name
    Bir tablonun adını belirtir sütun, type_column_name, belge türü için saklamak için kullanılan bir varbinary, varbinary(max), veya image Belge. Bu sütun tipi sütun olarak, bilinen bir kullanıcı tarafından sağlanan dosya uzantısı (.doc, .pdf, .xls vb.) içerir.Tür sütun türünde olmalıdır char, nchar, varchar, veya nvarchar.

    TYPE SÜTUN belirtin. type_column_name yalnızca column_name belirtir bir varbinary, varbinary(max) veya image sütun, veri olduğu saklı ikili veri olarak; aksi takdirde, SQL Server hata verir.

    Not

    Dizin oluşturma saat, tam metin alt yapısı kısaltmayı her tablo satır Türü sütununda belge içinde kullanılmak üzere hangi tam metin araması süzgeci tanımlamak için kullandığı column_name. Süzgeç belge ikili akışı olarak yükler, biçimlendirme bilgilerini kaldırır ve metni belgeden sözcük ayırıcısı bileşene gönderir.Daha fazla bilgi için bkz: tam metin araması süzgeçleri.

  • language_term LANGUAGE
    Depolanan verilerin dildir column_name.

    language_term isteğe bağlıdır ve bir dize, tamsayı veya onaltılık düzendeki bir değerin bir dil yerel ayar tanıtıcısını (LCID) için ilgili belirtilebilir.Değer belirtilmezse, varsayýlan dilini SQL Server Örnek kullanılır.

    If language_term , depolanan dizin verileri temsil ettiği dil kullanılacak belirtilir char, nchar, varchar, nvarchar, text, ve ntext sütunlar. Bu dil, sorgu saat kullanılan varsayılan dil olan language_term bir tam metin yüklemi sütun karşı bir parçası olarak belirtilmemiş.

    Bir dize olarak belirtildiğinde language_term diğer ad ad sütun değerine karşılık gelen, syslanguages sistemdeki tablo. Dize gibi tek tırnak işareti içine alınmalıdır 'language_term'.Bir tamsayı belirtildiğinde language_term dili tanımlayan gerçek LCıD'tir. Onaltılık değer olarak, belirtilen language_term 0 x onaltılık LCID değeriyle izler. Onaltılık değeri sıfır satır aralığı da dahil olmak üzere, sekiz basamak aşmamalıdır.

    Değer, çift baytlık karakter kümesi (DBCS) biçiminde ise SQL Server dosyayı Unicode'a dönüştürür.

    Belirtilen dil için sözcük ayırıcılarını ve sözcük köklerini, gibi kaynakları etkinleştirilmelidir. language_term. Böyle bir kaynak için belirtilen dilde desteği, SQL Server hata verir.

    Use the sp_configure stored procedure to access information about the default full-text language of the Microsoft SQL Server instance.Daha fazla bilgi için bkz: sp_configure (Transact-SQL) ve Varsayılan seçenek tam metin dili.

    Olmayan BLOB olmayan XML sütun birden fazla dilde metin verilerini içeren s veya metnin dilini depolanan, servis taleplerini sütun bilinmiyor, bağımsız (0x0) kullanabilmeniz için uygun olabilir dil kaynağı.Ancak, öncelikle, olası sonuçlarını nötr (0x0) dili anlamalısınız kaynak.Olası çözümler ve bağımsız (0x0) kullanmanın sonuçları hakkında bilgi için dil kaynağı için bkz: Bir tam metin dizini oluşturma, bir dil seçme ile ilgili en iyi yöntemler.

    saat dizin oluşturma sırasında XML veya BLOB türündeki sütunlarında saklanan belgeler için belge içinde kodlama dili kullanılır.Sütunlarda, XML, xml:lang XML belgeleri özniteliğinde dili tanımlar. Sorgu saat, önceden belirtilen değeri language_term sürece, tam metin sorguları için kullanılan varsayılan dil olur. language_term tam metin sorgusu bir parçası olarak belirtilir.

  • index_name anahtar INDIS
    Benzersiz anahtar dizini üzerinde adıdır table_name. ANAHTAR DIZINI, benzersiz, tek anahtar, NULL olmayan bir sütun olması gerekir.En küçük benzersiz anahtar dizin için tam metin benzersiz anahtarını seçin.En iyi performans için önerilir bir tamsayı veri türü için tam metin anahtar.

  • fulltext_catalog_name
    tam metin kataloğu, tam metin dizin için kullanılır.Katalog, veritabanında önceden mevcut olmalıdır.Bu yan tümce isteğe bağlıdır.Belirtilmezse, varsayılan bir katalog kullanılır.Hiçbir varsayılan katalog varsa, SQL Server hata verir.

  • filegroup_name dosya grubu
    Belirtilen tam metin dizini üzerinde belirtilen dosya grubu oluşturur.dosya grubu varolmalıdır.dosya grubu yan tümce belirtilirse, tam metin dizini, temel tablo veya Görünüm nonpartitioned bir tablo için aynı dosya grubu veya bölümlenmiş tablo için birincil dosya grubu yerleştirilir.

  • change_tracking [=] {EL İLE | OTOMATİK | KAPALI [, YOK BİR POPÜLASYON]}
    Tam metin dizin tarafından kapsanır tablo sütunlarını yapılan değişiklikleri (güncelleştirmeleri, siler veya ekler) tarafından aktarılacaktır olup olmadığını belirtir. SQL Server tam metin dizini. Veri değişikliklerini WRITETEXT ve UPDATETEXT tam metin dizininde yansıtılır ve değişiklik izleme çekildiği değil.

    • Elle
      Izlenen değişiklikleri el ile ALTER FULLTEXT INDIS … START UPDATE POPÜLASYON çaðýrarak dağıtılmasını gerekir olduğunu belirtir. Transact-SQL deyim)el ile bir popülasyonu).Kullanabileceğiniz SQL Server Bu çağrı için Aracısı Transact-SQL düzenli deyim.

    • OTOMATİK
      Verilerde değişiklik gibi temel tablo (izlenen değişiklikleri otomatik olarak aktarılacaktır olduğunu belirtir.Otomatik popülasyon).Değişiklikleri otomatik olarak yayılır karşın, bu değişiklikler hemen tam metin dizininde yansıtılması değil.AUTO varsayılandır.

    • OFF , YOK BİR POPÜLASYON İÇİN]
      Belirtir SQL Server değişiklikler listesi, dizine alınmış verileri korumaz. Ne zaman NO POPÜLASYON belirtilmemişse, SQL Server oluşturulduktan sonra dizinin tam olarak doldurur.

      HAYıR POPÜLASYON seçeneği, yalnızca CHANGE_TRACKING KAPALı olduğunda kullanılabilir.Ne zaman NO POPÜLASYON, belirtilen SQL Server oluşturulduktan sonra dizin doldurmuyor. Dizin, yalnızca kullanıcı START FULL POPÜLASYON veya START ARTıMLı POPÜLASYON yan tümcesini ALTER FULLTEXT INDEX komutu çalıştırdıktan sonra doldurulur.

  • STOPLIST [=] {OFF | SYSTEM | stoplist_name }
    Bir tam metin stoplist dizini ile ilişkilendirir.Dizini belirtilen stoplist bir parçası olan tüm simgeleri ile doldurulur.STOPLIST belirtilmezse, SQL Server Sistem tam metin stoplist dizini ile ilişkilendirir.

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

    • SYSTEM (Sistem)
      Bu tam metin dizin için tam metin varsayılan sistem STOPLIST kullanılması gerektiğini belirtir.

    • stoplist_name
      Tam metin dizini ile ilişkilendirmek için bu stoplist adını belirtir.

Remarks

Tam metin dizinleri hakkında daha fazla bilgi için bkz: Tam metin kataloglarını ve dizinleri, bir veritabanı için yapılandırma.

Üzerinde xml sütunları, XML öğelerinin içeriğinin dizinini oluşturur, ancak XML biçimlendirmesi yoksayar tam metin dizini oluşturabilirsiniz. Öznitelik sayısal değerler sürece dizine tam metin değerlerdir.Öğe etiketleri token sınırları kullanılır.Iyi biçimlendirilmiş XML veya HTML belgeleri ve birden çok dil içeren parçaları desteklenir.Daha fazla bilgi için bkz: Bir XML sütun üzerinde tam metin dizini.

Dizin anahtar sütun, bir Tamsayı veri türü olan öneririz.Bu, sorgunun yürütülmesi sırasında en iyi duruma getirmeleri sağlar.

Değişiklik izleme ve HIÇBIR popülasyon Parameter etkileşimler

Tam metin dizini olup doldurulur değişiklik izleme etkinleştirilip etkinleştirilmediği ve olup, WITH NO POPÜLASYON ALTER FULLTEXT INDEX deyiminde belirtilen bağlıdır.Aşağıdaki tablo sonucu, etkileşimi özetler.

Değişiklik izleme

YOK BİR POPÜLASYON İLE

Sonuç

Etkin değil

Belirtilmedi.

Tüm bir popülasyon dizini üzerinde gerçekleştirilir.

Etkin değil

Belirtilen

ALTER FULLTEXT INDIS... START POPÜLASYON deyim verilen kadar dizinin yok bir popülasyon oluşur.

Etkin

Belirtilen

Bir hata ortaya çıkar ve dizini olmayan değiştirilmiş.

Etkin

Belirtilmedi.

Tüm bir popülasyon dizini üzerinde gerçekleştirilir.

Tam metin dizinleriyle doldurma hakkında daha fazla bilgi için bkz: Tam metin dizini popülasyon.

İzinler

Kullanıcı gerekir BAşVURULAR üzerinde tam metin kataloğu izniniz ve tablo veya dizinli görünüm ALTER izninizin olması veya sysadmin sabit sunucu rolü veya db_owner üyesi olmanız veya veritabanı rollerini db_ddladmin sabit.

küme STOPLIST belirtilmişse, kullanıcı üzerinde belirtilen olan stoplist BAşVURULAR izninizin olması gerekir.STOPLIST sahibine bu izin verebilirsiniz.

Not

Ortak ile birlikte gelen varsayılan stoplist REFERENCE izin verilir SQL Server.

Örnekler

C.Benzersiz dizin, bir tam metin kataloğu ve bir tam metin dizini oluşturma

Aşağıdaki örnek, üzerinde benzersiz dizin oluşturur JobCandidateID sütun HumanResources.JobCandidate tablo, AdventureWorks Örnek Veritabanı'nı tıklatın. Örneğin, daha sonra bir varsayılan tam metin kataloğu oluşturur ft. Son olarak, örnek bir tam metin dizini oluşturur Resume sütun, kullanarak ft Katalog ve sistem stoplist.

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.Birkaç tablo sütunlarını üzerinde bir tam metin dizini oluşturma

Aşağıdaki örnek bir tam metin dizini oluşturur ReviewerName, EmailAddress, ve Comments sütunlarından Production.ProductReview tablonun AdventureWorks Örnek Veritabanı'nı tıklatın. Her sütun için örnek LCID, ingilizce, belirtir 1033, sütunlardaki veri dili olduğu. Bu tam metin dizini varsayılan tam metin kataloğu ve varolan benzersiz bir anahtar dizini, kullanır. PK_ProductReview_ProductReviewID. Önerilen gibi bu dizin, bir tamsayı sütun anahtardır 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.Doldurma olmadan, bir tam metin dizini oluşturma

Aşağıdaki örnek, bir tam metin kataloğu oluşturur. documents_catalog, içinde AdventureWorks Örnek Veritabanı'nı tıklatın. Örneğin, daha sonra bu yeni katalog kullanan bir tam metin dizini oluşturur.Tam metin dizini açıktır Document sütun Production.Document TABLO. Örnek LCID, ingilizce, belirtir. 1033, sütundaki veri dili olduğu. Bu tam metin dizini varsayılan tam metin kataloğu ve varolan benzersiz bir anahtar dizini, kullanır. PK_Document_DocumentID. Önerilen gibi bu dizin, bir tamsayı sütun anahtardır DocumentID. Örnek, değişiklik izlemeyi devre dışı yok bir popülasyon olduğunu belirtir.Daha sonra yoğun olmayan saatlerde örnek bir ALTER FULLTEXT INDEX deyim tam bir popülasyon yeni dizin oluşturmayı başlatmak ve otomatik değişiklik izlemeyi etkinleştirmek için kullanır.

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

--Daha yoğun olmayan saat dizin doldurun:

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

Değişiklik Geçmişi

Güncelleştirilmiş içerik

"Örnekler" bölümüne ek örnekler eklendi.

"Etkileşimler, değişiklik izleme ve HAYıR NÜFUS parametresi" bölümü eklendi.