Aracılığıyla paylaş


Full-Text Index (Transact-SQL) oluştur

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

Tam metin dizini, en çok 1024 sütun içerebilir.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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 veya sütun veya sütunları tam metin dizininde yer içeren dizinli görünüm adıdır.

  • column_name
    sütun adını tam metin dizininde bulunur.Only columns of type char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary, and varbinary(max) can be indexed for tam metin araması.Birden çok sütun belirtmek için yineleyin column_name yan tümce aşağıdaki gibi:

    Full-Text Index on oluşturmak table_name (column_name1 ) […], column_name2 […]) …

  • TÜR SÜTUNUtype_column_name
    tablosütunadını belirtir type_column_name, diğer bir deyişle belge türü için kullanılan bir varbinary, varbinary(max), veya image belge. Türü sütunolarak bilinen bu sütun, kullanıcı tarafından sağlanan dosya uzantısı (.doc, .pdf, .xls vb.) içerir.Tür sütun olmalıdır char, nchar, varchar, veya nvarchar.

    Tür sütunu belirtin type_column_name yalnızca yoksa column_name belirtir bir varbinary, varbinary(max) veya image sütun, veri depolanan ikili veri; Aksi takdirde, SQL Server işlevi bir hata.

    Not

    saatdizin oluşturma sırasında tam-metin arama motoru kısaltmayı türü sütun , her tablo satırı belgede kullanmak için hangi tam metin araması filtresini tanımlamak için kullandığı column_name.Filtre belgeyi 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. Tam metin arama filtreleri.

  • DİLlanguage_term
    Depolanan verileri dildir column_name.

    language_termisteğe bağlıdır ve bir dize, tamsayı veya yerel ayar tanıtıcısı bir dil için (LCID) karşılık gelen onaltılık değeri olarak belirtilebilir.Herhangi bir değer belirtilmezse, varsayılan dil SQL Server örnek kullanılır.

    language_term Belirtilmişse, temsil ettiği dil kullanılan dizin saklanan verileri char, nchar, varchar, nvarchar, text, ve ntext sütunlar.Bu dil, sorgu saat kullanılan varsayılan dil olan language_term tam metin yüklemi sütunkarşı bir parçası olarak belirtilen değil.

    Bir dizebelirtildiğinde language_term karşılık gelen alias sütun değeri syslanguages sistem tablosu.dize gibi tek tırnak işareti içine alınmalıdır 'language_term'.Tamsayı belirtildiğinde language_term gerçek LCID tanıtan dili.Onaltılı değer olarak belirtildiğinde language_term 0 x onaltılık değerini ardında iseLCID.Onaltılı değeri, sekiz basamak, öndeki sıfırı dahil aşmamalıdır.

    Değer (DBCS) çift baytlık karakter kümesi biçiminde ise SQL Server tarafından kendisine dönüştürülürUnicode.

    Sözcük ayırıcılarını ve sözcük köklerini, gibi kaynaklar için etkin olarak belirtilen dil language_term.Bu tür kaynaklar belirtilen dil desteği yoksa SQL Server işlevi bir hata.

    Use sp_configure saklı yordam için varsayılan tam metin dili hakkında bilgilere erişmek için Microsoft SQL Server örnek.Daha fazla bilgi için, bkz. sp_configure (Transact-SQL) ve Varsayılan seçenek tam metin dili.

    Birden çok dilde metin verilerini içeren DAMLA ve -xml sütun veya sütun depolanan metnin dilini belirsiz olduğunda durumlarda nötr (0x0) dil kaynakiçin uygun olabilir.Ancak, ilk kaynaknötr (0x0) dilini kullanarak olası sonuçlarını anlamanız gerekir.Olası çözümler ve nötr (0x0) dil kaynakkullanmanın sonuçları hakkında daha fazla bilgi için bkz: Tam metin dizini oluşturma, bir dil seçme en iyi yöntemler.

    xml veya blob türü sütunlarda depolanan belgeler, belge içinde kodlama dili saatdizin oluşturma sırasında kullanılır.Örneğin, xml sütunlar halinde xml:lang öznitelik xml belgelerindeki dili tanımlamak.Sorgu saatdeğer önceden belirtilen language_term varsayılan dil kullanılan tam metin sorguları için sürece olur language_term tam metin sorgusubir parçası belirtilir.

  • ANAHTAR DİZİNİindex_name
    Benzersiz anahtar dizini üzerinde adıdır table_name.ANAHTAR dizini, benzersiz, tek -anahtar, yapılamayan sütunolması gerekir.Tam metin benzersiz anahtarküçük benzersiz anahtar dizini seçin.En iyi performansı elde etmek için öneririz bir tamsayı veri türü tam metin anahtar.

  • fulltext_catalog_name
    tam metin kataloğu için tam metin dizin kullanılır.Katalog veritabanında bulunması gerekir.Bu yan tümce isteğe bağlıdır.Belirtilmezse, varsayılan katalog kullanılır.Varsayılan katalog yok varsa, SQL Server işlevi bir hata.

  • DOSYA GRUBUfilegroup_name
    Belirtilen tam metin dizini üzerinde belirtilen dosya grubuoluşturur.dosya grubu önceden mevcut olmalıdır.FILEGROUP yan tümce belirtilmezse, tam metin dizini temel tablo veya Görünüm nonpartitioned bir tablo olarak aynı dosya grubu veya bölümlenmiş tabloiçin birincil dosya grubu yerleştirilir.

  • CHANGE_TRACKING = {manual | AUTO | off , hiçbir POPÜLASYON]}
    Tam metin dizin tarafından kapsanan tablo sütunları yapılan değişiklikleri (güncelleştirmeler, siler veya ekler) tarafından yayılan olup olmadığını belirtir SQL Server için tam metin dizini.Veri değişiklikleri WRITETEXT ve updatetext tam metin dizin içinde yansıtılmaz ve değişiklik izleme toplanmaz.

    • EL İLE
      İzlenen değişiklikleri el ile … çağırarak alter Full-Text Index gönderilmelidir olduğunu belirtir Güncelleştirme POPÜLASYON başlatmak Transact-SQL deyim (el ile popülasyon).Kullanabileceğiniz SQL Server öğesine çağrı bu Transact-SQLdüzenlideyim .

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

    • off , hiçbir POPÜLASYON]
      Belirleyen SQL Server için değişikliklerin listesini saklamazdizinlenmiş bir veri.Hayır POPÜLASYON belirtilmemişse, SQL Server oluşturulduktan sonra Dizin tamamen dolduran.

      Hayır POPÜLASYON seçeneği yalnızca CHANGE_TRACKING kapalı olduğunda kullanılabilir.Hayır POPÜLASYON belirtildiğinde, SQL Server oluşturulduktan sonra Dizin doldurmuyor.Dizin, yalnızca kullanıcı start full POPULATION veya Başlat ARTIMLI POPÜLASYON yan tümcealter Full-Text Index komutu yürütür sonra doldurulur.

  • STOPLIST = {off | SYSTEM | stoplist_name }
    Tam metin stoplist dizinle ilişkilendirir.Dizin belirtilen stoplist parçası olan tüm simgeleri ile dolu değildir.STOPLIST belirtilmezse, SQL Server associates sistem tam metin stoplist dizin.

    • KAPALI
      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.

Açıklamalar

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

Üzerinde xml Sütunlar oluşturabileceğiniz bir tam metin dizini xml öğelerinin içeriğinin dizinini oluşturur ancak yoksayar xml biçimlendirme.Öznitelik değerleri sayısal değerler olmadıkça dizin, tam metin.Öğe etiketleri olarak token sınırları kullanılır.İyi biçimlendirilmiş xml veya HTML belgelerini ve parçalarını birden çok dil içeren desteklenir.Daha fazla bilgi için, bkz. Bir xml sütun üzerinde tam metin dizini.

Tamsayı veri türü dizin anahtar sütun olduğunu öneririz.Bu sorgu yürütme saatiyileştirmeler sağlar.

Değişiklik izleme ve hiçbir NÜFUS parametresi etkileşimler

Tam metin dizini doldurulur olup değişiklik izleme etkinleştirilmiş olup olmadığı ve ile Hayır POPÜLASYON alter Full-Text Index deyimbelirtmiş olmasına bağlıdır.Aşağıdaki tablo , kendi 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 Full-Text Index kadar oluşur...POPÜLASYON başlatın deyim verilir.

Etkin

Belirtilen

Bir hata oluşturulur ve dizinin değişmeyen.

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 dizini popülasyon.

İzinler

Kullanıcı gerekir başvurular tam metin kataloğu izniniz ve tablo ya da dizinli görünümüzerinde alter iznine sahip veya üye olmanız sysadmin sabit sunucu rolü, ya da db_owner, veya db_ddladmin sabit veritabanı rolleri.

STOPLIST set belirtilmişse, kullanıcı üzerinde belirtilen stoplist başvurular izninizin olması gerekir.STOPLIST sahibi bu izni verebilirsiniz.

Not

Genel başvuru ile birlikte gelen varsayılan stoplist izni SQL Server.

Örnekler

A.benzersiz dizin, tam metin kataloğuve tam metin dizini oluşturma

Aşağıdaki örnek benzersiz dizin oluşturur JobCandidateID sütun HumanResources.JobCandidate tablo AdventureWorks2008R2 örnek veritabanı.Varsayılan tam metin kataloğu, sonra örnek oluşturur ft.Son olarak, örnek bir tam metin dizini oluşturur Resume sütunkullanarak ft katalog ve sistem stoplist.

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 STOPLIST = SYSTEM;
GO

B.Birkaç tablo sütunları ü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 tablo AdventureWorks2008R2 örnek veritabanı.Her sütuniçin örnek belirtir LCID, İngilizce, 1033, hangi dili veri sütunları.Bu tam metin dizini varsayılan tam metin kataloğu ve varolan bir benzersiz anahtar dizini kullanır PK_ProductReview_ProductReviewID.Önerilen gibi bir tamsayı sütunüzerinde bu dizin anahtar , ProductReviewID.

USE AdventureWorks2008R2;
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 oluşturur tam metin kataloğu documents_catalog, AdventureWorks2008R2 örnek veritabanı.Bu örnek, sonra bu yeni katalog kullanan bir tam metin dizini oluşturur.Üzerinde tam metin dizini olan Title, DocumentSummary, ve Document sütunlarından Production.Document tablo.Örnek belirtir LCID, İngilizce, 1033, hangi dili veri sütunları.Bu tam metin dizini varsayılan tam metin kataloğu ve varolan bir benzersiz anahtar dizini kullanır PK_Document_DocumentID.Önerilen gibi bir tamsayı sütunüzerinde bu dizin anahtar , DocumentID.

Örnek sistem stoplist belirtir.

Örnek değişiklik izleme kapalı hiçbir popülasyonile olduğunu belirtir.Daha sonra yoğun olmayan saatlerde yeni indeks tam bir popülasyon başlatın ve otomatik değişiklik izlemeyi etkinleştirmek için Full-Text Index alter deyim örnek kullanır.

USE AdventureWorks2008R2;
GO
CREATE FULLTEXT CATALOG documents_catalog;
GO
CREATE FULLTEXT INDEX ON Production.Document
  ( 
  Title
      Language 1033, 
  DocumentSummary
      Language 1033, 
  Document 
      TYPE COLUMN FileExtension
      Language 1033 
  )
  KEY INDEX PK_Document_DocumentID
      ON documents_catalog
      WITH STOPLIST = SYSTEM , CHANGE_TRACKING OFF, NO POPULATION;
   GO

Daha sonra bir boş saat, dizini doldurulur:

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