Oluşturun ve tam metin dizinleri Yönet

Tam metin dizin bilgileri tam metin altyapısı tarafından tablo belirli sözcük ve sözcük birleşimlerini için hızlı bir şekilde arayabilirsiniz tam metin sorguları derlemek için kullanılır. Bir tam metin dizini önemli kelime ve veritabanı tablosundaki bir veya daha fazla sütun içindeki konumları hakkında bilgi depolar. Bir tam metin dizini inşa ve için tam metin altyapısı tarafından işlenen işlev belirteç tabanlı dizin özel bir tür olan SQL Server. Tam metin dizin oluşturma işlemi, diğer tip dizinler oluşturmak farklıdır. Belirli bir satırda depolanan değeri temel alan bir b-ağaç yapısı oluşturmak yerine, tam metin altyapısı endekslenmiyor metinden ayrı belirteçleri dayalı bir ters, yığılmış, sıkıştırılmış dizin yapısı oluşturur.  Tam metin dizin boyutu yalnızca bilgisayarın bellek kaynakları sınırlıdır örneği SQL Serverçalışıyor.

Yılında başlayan SQL Server 2008, tam metin dizinlerini dosya sisteminde önceki sürümleri olarak ikamet yerine veritabanı altyapısı ile entegre SQL Server. Yeni bir veritabanı için tam metin kataloğu şimdi herhangi filegroup için; ait olmayan bir sanal nesnesidir Bu tam metin dizinlerini grubuna başvuran sadece bir mantıksal kavramdır. Ancak, yükseltme işlemi sırasında bir SQL Server 2005veritabanı, herhangi bir tam metin kataloğu veri dosyalarını içeren yeni bir dosya grubu oluşturulur; daha fazla bilgi için bkz: SQL Server 2005 tam metin arama yükseltme.

[!NOT]

De SQL Server 2008ve sonraki sürümleri, tam metin alt yapısı içinde SQL Serversüreci, yerine ayrı bir hizmet. Tam metin alt yapısı veritabanı alt yapısına entegre tam metin yönetilebilirlik, optimizasyon karışık sorgu ve genel performansı artırır.

Yalnızca bir tam metin dizini, her tablo için izin verilir. Tam metin dizin tablo üzerinde Oluşturulacak tablonun tek ve benzersiz bir nonnull sütun olmalıdır. Sütun türü üzerinde bir tam metin dizini oluşturabilirsiniz char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary, ve varbinary(max)tam metin arama için indekslenecek. Bir sütun verilerini bir tam metin dizin oluşturma türü olan varbinary, varbinary(max), image, ya xmltürü sütun belirtmek gerekir. A türü sütun her satırdaki Belge dosya uzantısını (.doc, .pdf, .xls vb.) sakladığınız bir tablo sütun.

Oluşturma ve bir tam metin dizini koruma süreci olarak adlandırılan bir nüfus (olarak da bilinen bir tarama). Tam metin dizini popülasyon için üç tür vardır: tam popülasyon, değişiklik popülasyon izleme tabanlı ve zaman damgası tabanlı artımlı popülasyon. Daha fazla bilgi için, bkz. Tam metin dizinlerini doldurma.

Bu Konuda

  • Ortak görevler

  • Tam metin dizin yapısı

  • Tam metin dizin parçaları

Ortak görevler

Bir tam metin dizini oluşturmak için

Bir tam metin dizini değiştirmek için

Tam metin dizin bırakmak için

[YUKARI]

Tam metin dizin yapısı

Tam metin dizin yapısını iyi bir anlayış tam metin altyapısı nasıl çalıştığını anlamanıza yardımcı olacaktır. Bu konu aşağıdaki alıntıyı kullanır belge içinde masa Adventure Worksbir örnek tablosu gibi. Bu alıntı, yalnızca iki sütun gösterir DocumentID sütun ve başlığı sütun ve üç satır tablo.

Bu örnekte, biz bir tam metin dizini üzerinde oluşturulan üstlenecek başlığı sütun.

DocumentID

Başlık

1

Kol ve lastik bakım crank

2

Ön Reflector ayraç ve Reflector derleme 3

3

Ön Reflector ayraç yükleme

Örneğin, üzerinde oluşturulan tam metin dizini içeriği parçası 1 gösterir, aşağıdaki tabloda gösterilmektedir başlığı sütun belgesi tablo. Tam metin dizinleri bu tabloda sunulan daha fazla bilgi içerir. Tablo tam metin dizini mantıksal gösterimi ve göndermeler yalnızca sağlanmıştır. Satırları, disk kullanımını optimize etmek için sıkıştırılmış biçimde depolanır.

Orijinal belgelerden veri ters olduğunu fark. Anahtar kelimeler için Belge kimlikleri eşlenen inversiyon oluşur. Bu nedenle, bir tam metin dizini genellikle ters dizin olarak anılır.

Ayrıca fark anahtar kelime "ve" tam metin dizinden kaldırıldı. Bu çünkü yapılır "ve" bir stopword olduğunu ve tam metin dizinden stopwords kaldırmak disk alanında böylece sorgu performansını önemli ölçüde tasarruf yol açabilir. Stopwords hakkında daha fazla bilgi için bkz: Yapılandırma ve Stopwords ve Stoplists için tam metin araması yönetme.

Parça 1

Anahtar Sözcük

ColId

SELECT DocID

Oluşumu

Crank

1

1

1

Kol

1

1

2

Lastik

1

1

4

Bakım

1

1

5

Açık

1

2

1

Açık

1

3

1

Reflektör

1

2

2

Reflektör

1

2

5

Reflektör

1

3

2

Köşeli ayraç

1

2

3

Köşeli ayraç

1

3

3

Çevirme

1

2

6

3

1

2

7

Yükleme

1

3

4

Kelime sütun içeren tek bir belirteç zaman dizin oluşturma çıkarılan bir gösterimi. Sözcük ayırıcılarını, ne kadar bir belirteç yapan belirler.

ColId sütun tam metin dizini olan belirli bir sütun karşılık gelen değeri içerir.

DocId sütun değerleri için belirli bir tam metin anahtar değeri tam metin dizini oluşturulmuş tablo eşleştirir, sekiz baytlık bir tamsayı içerir. Bu eşleştirme, tam metin anahtarını bir tamsayı veri türü olduğunda gereklidir. Bu gibi durumlarda tam metin arasındaki eşlemeleri anahtar değerleri ve DocId değerler DocId eşleme tablosu adı verilen ayrı bir tabloda korunur. Bu eşlemeler kullanmak için sorgulamak için Sp_fulltext_keymappingstable_id sistem saklı yordamını. Bir arama koşulu karşılamak için DocIdyukarıdaki tablodan değerlerin sorgulanan temel tablodan satır almak için DocId eşleme tablosu ile katılması gerekiyor. Temel tablo tam metin anahtar değeri bir tamsayı türü ise, değer doğrudan gören DocIdve hiçbir eşleştirme gereklidir. Bu nedenle, tamsayı tam metin anahtar değerleri kullanarak tam metin sorguları en iyi duruma yardımcı olabilir.

Oluşumu sütun içeren bir tamsayı değeri. Her DocIddeğer, orada belirli anahtar kelimenin, içinde göreli kelime uzaklıklar, karşılık gelen oluşumu değerler listesi DocId. Oluşumu değerler ifade ya da yakınlık maçlar belirlemede yararlıdır, örneğin ifadeler sayısal olarak bitişik oluşumu değerlere sahip. Onlar da alaka puanları bilgisayar kullanışlıdır; Örneğin, bir anahtar kelime oluşum sayısı bir DocIdskor olarak kullanılmış olabilir.

[YUKARI]

Tam metin dizin parçaları

Mantıksal tam metin dizini genellikle birden fazla iç tablolar arasında bölünür. Her iç tablo tam metin dizini parçası denir. Bu parçaları bazıları diğerlerinden daha yeni veriler içerebilir. Örneğin, bir kullanıcı güncelleştirmeleri aşağıdaki satır olan DocId3 ve tablo otomatik değişiklik izleniyor ise, yeni bir parça oluşturulur.

DocumentID

Başlık

3

Arka ışık

Parça 2 gösterir, aşağıdaki örnekte parçası, hakkında yeni veri içeren DocIdparçası 1'e göre 3. Bu nedenle, ne zaman "Arka reflektör için" kullanıcı sorgular Parça 2 verileri için kullanılan DocId3. Her parçası kullanarak sorgulanabilen oluşturma zaman damgası ile işaretlenmiş sys.fulltext_index_fragments Katalog görünümü.

Parça 2

Anahtar Sözcük

ColId

SELECT DocID

OCC

Arka

1

3

1

Reflektör

1

3

2

Parça 2'den görülebileceği gibi tam metin sorguları dahili olarak her parçası sorgulamak ve eski yazılar atmak gerekiyor. Bu nedenle çok fazla tam metin dizini parçaları tam metin dizin sorgu performansı önemli ölçüde düşmesine yol açabilir. Fulltext Katalog parçalarının sayısını azaltmak için yeniden Düzenle seçeneği kullanılarak yeniden alter fulltext catalog Transact-SQL deyimi. Bu bildirimi yapan bir ana birleştirme, bir tek büyük parça parçaları birleştirir ve tüm geçersiz girdileri tam metin dizinden kaldırır.

Sonra yeniden, örnek dizini aşağıdaki satırları içerecektir:

Anahtar Sözcük

ColId

SELECT DocID

OCC

Crank

1

1

1

Kol

1

1

2

Lastik

1

1

4

Bakım

1

1

5

Açık

1

2

1

Arka

1

3

1

Reflektör

1

2

2

Reflektör

1

2

5

Reflektör

1

3

2

Köşeli ayraç

1

2

3

Çevirme

1

2

6

3

1

2

7

[YUKARI]