fulltext INDEX (Transact-sql) oluştur

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

Bir tam metin dizini, en çok 1024 sütunlar içerebilir.

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

Sözdizimi

CREATE FULLTEXT INDEX ON table_name
   [ ( { column_name 
             [ TYPE COLUMN type_column_name ]
             [ LANGUAGE language_term ] 
             [ STATISTICAL_SEMANTICS ]
        } [ ,...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 }
 | SEARCH PROPERTY LIST [ = ] property_list_name 
 }

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.

  • column_name
    Tam metin dizininde yer alan sütun addır. Only columns of type char, varchar, nchar, nvarchar, text, ntext, image, xml, and varbinary(max) can be indexed for full-text search. Birden çok sütun belirtmek için tekrar column_nameyan tümcesi şöyledir:

    INDEX on fulltext create table_name(column_name1 […] column_name2 […])...

  • 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(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(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. Herhangi bir değer belirtilmezse, varsayılan dilini SQL Serverörneği kullanılır.

    Eğer language_termbelirtilirse, temsil ettiği dil verilerin saklanacağı dizin kullanılacak char, nchar, varchar, nvarchar, text, ve ntextsütun. Bu dil, sorgu zaman kullanılan varsayılan dilidir language_termkarşı sütunda tam metin yüklemi bir parçası olarak belirtilmemiş.

    Bir dizge olarak belirtilen language_termkarşılık aliassütun değeri syslanguagessistem 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.

    Kullanım sp_configuresaklı yordamı varsayılan tam metin dili hakkında bilgilere erişmek için Microsoft  SQL Serverörneği. Daha fazla bilgi için, bkz. sp_configure (Transact-sql).

    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ğı kullanmak için uygun olabilir. Ancak, öncelikle, nötr (0x0) dil kaynağı kullanmanın olası sonuçlarını anlamanız gerekir. Nötr (0x0) dil kaynağı kullanarak sonuçları ve olası çözümleri hakkında daha fazla bilgi için bkz: Bir tam metin dizini oluşturma, bir dil seçin.

    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ütunlar halinde xml:langözniteliği xml belgelerindeki dili belirlemek. 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).

  • ANAHTAR DİZİNİindex_name
    Benzersiz bir anahtar dizin adı üzerinde table_name. ANAHTAR dizini, benzersiz, tek tuşlu, NULL olmayan-olabilecek bir sütun olmalıdır. En küçük benzersiz anahtar dizini tam metin benzersiz anahtar için seçin. En iyi performans için bir tamsayı veri türü için tam metin anahtarını öneririz.

  • fulltext_catalog_name
    Tam metin kataloğu için tam metin dizin kullanılır. Katalog veritabanında bulunması gerekir. Bu isteğe bağlıdır. Belirtilmezse, varsayılan katalog kullanılır. Hiçbir varsayılan katalog yoksa, SQL Serverhata veriyor.

  • FILEGROUPfilegroup_name
    Belirtilen tam metin dizini belirtilen filegroup oluşturur. Filegroup önceden mevcut olmalıdır. FILEGROUP yan tümcesi belirtilirse, temel tablo veya görünüm için bir nonpartitioned tablo olarak aynı filegroup veya birincil filegroup bölümlenmiş bir tablo için tam metin dizini yerleştirilir.

  • CHANGE_TRACKING = {manual |AUTO | off , hiçbir popülasyon]}
    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.

    • El ile
      İzlenen değişiklikleri el ile alter fulltext INDEX çağırarak... yayılması gerekir 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 ,hiçbir popülasyon]
      Belirleyen SQL Serverdeğişikliklerin listesi oluşturulmuş veri tutmaz. Hayır popülasyon belirtildiğinde, SQL Serveroluşturulduktan sonra dizin tamamen dolduran.

      Hayır popülasyon seçeneği, yalnızca CHANGE_TRACKING off olduğunda kullanılabilir. Hayır popülasyon belirtildiğinde, SQL Serveroluşturulduktan sonra dizin doldurmaz. Dizin, yalnızca kullanıcı tam bir popülasyon başlatın ya da start ARTIMLI popülasyon yan tümcesini alter fulltext INDEX komutu yürütür sonra doldurulur.

  • STOPLIST = {off |SYSTEM | stoplist_name }
    Bir tam metin stoplist dizini ile ilişkilendirir. Dizin belirtilen stoplist parçası olan herhangi bir simge ile boştur. STOPLIST belirtilmezse, SQL Serverile dizin sistemi tam metin stoplist ilişkilendirir.

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

  • Arama özellik listesi =property_list_name
    Bir arama özelliği listesi dizini ile ilişkilendirir.

    • OFF
      Özellik listesi yok tam metin dizini ile ilişkili olduğunu belirtir.

    • property_list_name
      Tam metin dizini ile ilişkilendirmek için arama özellik listesinin adını belirtir.

Açıklamalar

Tam metin dizinleri hakkında daha fazla bilgi için bkz: Oluşturun ve tam metin dizinleri Yönet.

Tarih xmlsütunlar, bir tam metin dizini xml öğelerinin içeriğinin dizinini oluşturur, ancak xml biçimlendirmesi yoksayar oluşturabilirsiniz. Öznitelik değerleri sayısal değerler olmadıkça dizin, tam metin. Öğe etiketleri, belirteç sınırları kullanılır. İyi biçimlendirilmiş xml veya html belgeleri birden çok dil içeren parçaları desteklenir. Daha fazla bilgi için, bkz. xml sütun tam metin araması kullanma.

Bir tamsayı veri türü dizin anahtar sütunu olduğunu öneririz. Bu sorgu yürütme zaman iyileştirmeler sağlar.

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.

İzinler

Kullanıcı gerekir başvurular tam metin kataloğu izniniz ve alter tablosu veya dizin oluşturulmuş görünüm izniniz veya bir üyesi olmanız sysadminsabit sunucu rolü, ya da db_owner, ya db_ddladminveritabanı rolleri sabit.

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

[!NOT]

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

Örnekler

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

Aşağıdaki örnek üzerinde benzersiz bir dizin oluşturur JobCandidateIDsütununda HumanResources.JobCandidatetablo AdventureWorksörnek veritabanı. Ardından varsayılan tam metin kataloğu örnek oluşturur ft. Son olarak, örnek bir tam metin dizini oluşturur Resumesütun kullanarak ftKatalog 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

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ı üzerinde bir tam metin dizini oluşturma

Aşağıdaki örnek, bir tam metin kataloğu oluşturur production_catalog, AdventureWorksörnek veritabanı. Örnek daha sonra bu yeni katalog kullanan bir tam metin dizini oluşturur. Tam metin dizin üzerinde ReviewerName, EmailAddress, ve Commentssütunları Production.ProductReviewtablo AdventureWorksörnek veritabanı. Her sütun için örnek LCID of Turkish, belirtir 1033, which is sütundaki verileri dili. Bu tam metin dizini kullanan varolan benzersiz bir anahtar dizini, PK_ProductReview_ProductReviewID. Tavsiye, bu dizin anahtarı bir tamsayı sütun üzerinde olduğunu ProductReviewID.

USE AdventureWorks;
GO
CREATE FULLTEXT CATALOG production_catalog;
GO
CREATE FULLTEXT INDEX ON Production.ProductReview
 ( 
  ReviewerName
     Language 1033,
  EmailAddress
     Language 1033,
  Comments 
     Language 1033     
 ) 
  KEY INDEX PK_ProductReview_ProductReviewID 
      ON production_catalog; 
GO

USE AdventureWorks;
GO
CREATE FULLTEXT CATALOG production_catalog;
GO
CREATE FULLTEXT INDEX ON Production.ProductReview
 ( 
  ReviewerName
     Language 1033,
  EmailAddress
     Language 1033,
  Comments 
     Language 1033     
 ) 
  KEY INDEX PK_ProductReview_ProductReviewID 
      ON production_catalog; 
GO

C.Doldurma olmadan arama özelliği liste ile bir tam metin dizini oluşturma

Aşağıdaki örnek bir tam metin dizini oluşturur Title, DocumentSummary, ve Documentsütunları Production.Documenttablosu. Örneğin LCID of Turkish, belirtir 1033, which is sütundaki verileri dili. Varsayılan tam metin kataloğu ve varolan benzersiz bir anahtar dizini, bu tam metin dizini kullanır PK_Document_DocumentID. Tavsiye, bu dizin anahtarı bir tamsayı sütun üzerinde olduğunu DocumentID.

Örneğin, sistem stoplist belirtir. Ayrıca bir arama özelliği listesi belirtir DocumentPropertyList; Bu özellik listesi oluşturan bir örnek için bkz: Arama özellik listesi (Transact-sql) oluştur.

Örnek değişiklik izleme kapalı hiçbir popülasyon ile belirtir. Sonraki saatlerde, örnek kullanır bir alter fulltext INDEX yeni dizini tam bir popülasyon başlatın ve otomatik değişiklik izlemeyi etkinleştirmek için deyimi.

USE AdventureWorks;
GO
CREATE FULLTEXT INDEX ON Production.Document
  ( 
  Title
      Language 1033, 
  DocumentSummary
      Language 1033, 
  Document 
      TYPE COLUMN FileExtension
      Language 1033 
  )
  KEY INDEX PK_Document_DocumentID
          WITH STOPLIST = SYSTEM, SEARCH PROPERTY LIST = DocumentPropertyList, CHANGE_TRACKING OFF, NO POPULATION;
   GO

USE AdventureWorks;
GO
CREATE FULLTEXT INDEX ON Production.Document
  ( 
  Title
      Language 1033, 
  DocumentSummary
      Language 1033, 
  Document 
      TYPE COLUMN FileExtension
      Language 1033 
  )
  KEY INDEX PK_Document_DocumentID
          WITH STOPLIST = SYSTEM, SEARCH PROPERTY LIST = DocumentPropertyList, CHANGE_TRACKING OFF, NO POPULATION;
   GO

Daha sonra yoğun bir zaman dizini doldurulur:

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

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

Ayrıca bkz.

Başvuru

alter fulltext INDEX (Transact-sql)

fulltext INDEX (Transact-sql) bırak

grant (Transact-sql)

içinsys.fulltext_indexesKatalog (Transact-sql)

Kavramlar

Oluşturun ve tam metin dizinleri Yönet

Tam metin araması (SQL Server)

Arama belge özellikleri ile arama özellik listeleri