Aracılığıyla paylaş


Tam metin dizin yapısı

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

Bu örnek, bir tam metin dizini üzerinde oluşturulan varsayacağız başlığı sütun.

DocumentID

Title

1

Kol ve lastiği bakım crank

2

Reflector ayraç ve Reflector derleme 3 ön

3

Ön Reflector ayraç yükleme

Örneğin, aşağıdaki tablo, hangi parça 1 gösterir gösterir üzerinde oluşturulan tam metin dizini içeriği başlığı sütunu belge tablo.Tam metin dizinlerini sunulan bu konuda daha fazla bilgi içeren tablo.Tablo tam metin dizini mantıksal gösterimidir ve yalnızca gösterim amacıyla sağlanmıştır.Satırları disk kullanımını en iyi duruma getirmek için sıkıştırılmış biçimde depolanır.

Orijinal belgelerden veri ters olduğunu fark.Anahtar sözcükler belge kimlikleri eşlendiğinden ters çevirmeyi oluşur.Bu nedenle, bir tam metin dizini genellikle ters dizin olarak adlandırılır.

Ayrıca, fark anahtar sözcüğü "ve" tam metin dizinden kaldırıldı.Bunun yapılmasının nedeni "ve" bir stopword olduğunu ve tam metin dizinden stopwords kaldırmak büyük ölçüde tasarruf disk alanına böylece sorgu performansını artırmak için yol açabilir.Stopwords hakkında daha fazla bilgi için bkz: Stopwords ve Stoplists.

Parça 1

Anahtar Sözcük

ColId

DocId

Oluşumu

Mili

1

1

1

Kol

1

1

2

Lastiği

1

1

4

Bakım

1

1

5

Ön

1

2

1

Ön

1

3

1

Reflector

1

2

2

Reflector

1

2

5

Reflector

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

The Keyword column contains a representation of a single token extracted at indexing time.Sözcük ayırıcılarını ne kadar bir belirteç yapar belirlemek.

The ColId column contains a value that corresponds to a particular column that is full-text indexed.

The DocId column contains values for an eight-byte integer that maps to a particular full-text key value in a full-text indexed table.Bu eşleştirme ne zaman gereklidir tam metin anahtar bir tamsayı veri türü değil.Bu gibi durumlarda, tam metin arasındaki eşlemeleri anahtar değerleri ve DocId değerlerini ayrı bir sürdürülebilir tablo DocId eşleme adı verilen tablo.Bu eşlemeler kullanmak için sorgulamak için sp_fulltext_keymappings sistem saklı yordamı.Bir arama koşulu karşılamak için DocId Yukarıdaki tablodan değerlerin satırlarını almak için DocId eşleme tablosu ile katılması gerekiyor temel tablo sorgulanan.Temel tablo tam metin anahtar değeri bir tamsayı türü ise, değer doğrudan gören DocId ve hiçbir eşleştirme gerekli.Bu nedenle, tamsayı tam metin anahtar değerleri kullanan tam metin sorguları en iyi duruma yardımcı olabilir.

The Occurrence column contains an integer value.Her DocId değeri, belirli anahtar sözcüğü, içinde göreli word bölümlerine karşılık oluşumu değerler listesini DocId.Yinelenme deðerleri yakınlık ya da tümcecik eşleşmeleri belirlemede yararlıdır, örneğin, tümceleri bitişik sayısal oluşumu değerlerine sahip.Bunlar da ilgi doğrultusunda bilgi işlem alanında kullanışlıdır; Örneğin bir anahtar sözcük oluşumlarını sayısı bir DocId Skor olarak kullanılmış olabilir.

Full-Text Index parçaları

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

DocumentID

Title

3

Arkadan Reflector

Hakkında parçası 2 gösterir, aşağıdaki örnekte parça yeni verileri içeren DocId karşılaştırıldığında parça 1-3.Bu nedenle, kullanıcı "Arkadan Reflector" için sorguladığı zaman Parça 2'deki verileri için kullanılan DocId 3.Her parça kullanarak sorgulanabilir oluşturma zaman damgası ile işaretlenmiş sys.fulltext_index_fragments Katalog görünümü.

Parça 2

Anahtar Sözcük

ColId

DocId

Occ

Arka

1

3

1

Reflector

1

3

2

Parça 2'den görüleceği gibi tam metin sorguları her parça kendi içinde sorgulamak ve eski girdileri atmak gerekir.Bu nedenle, tam metin dizini içinde çok fazla tam metin dizini parça sorgu performansı önemli ölçüde düşmesine yol açabilir.To reduce the number of fragments, reorganize the fulltext catalog by using the REORGANIZE option of the ALTER FULLTEXT CATALOG Transact-SQL statement.Bu deyim gerçekleştiren bir ana birleştirme, bir tek büyük parça parçalarını birleştirir ve tam metin dizini geçersiz tüm girdileri kaldırır.

Örnek dizin organize sonra aşağıdaki satırları içerecektir:

Anahtar Sözcük

ColId

DocId

Occ

Mili

1

1

1

Kol

1

1

2

Lastiği

1

1

4

Bakım

1

1

5

Ön

1

2

1

Arka

1

3

1

Reflector

1

2

2

Reflector

1

2

5

Reflector

1

3

2

Köşeli ayraç

1

2

3

Çevirme

1

2

6

3

1

2

7