Aracılığıyla paylaş


Tam metin dizin yapısı

Tam metin dizin yapısını daha iyi bir anlayış tam-metin alt yapısı nasıl çalıştığını anlamanıza yardımcı olur.Aşağıdaki alıntı, bu konuda kullananBelge tablo Adventure Worksörnek bir tablo.Yalnızca iki sütun bu alıntı gösterirDocumentID sütun başlık sütun ve tablo. ' dan üç satır

Not

Hakkında bilgi almak için bu örnek sütunlarının tablo, bkz:Belge tablo (AdventureWorks).

Bu örnekte, tam metin dizini üzerinde oluşturulan varsayacağızBaşlık sütun.

DocumentID

Başlık

1

Kolu ve lastiği bakım crank

2

Reflector Dirseği ve Reflector derleme 3 ön

3

Ön Reflector ayraç yükleme

Örneğin, aşağıdaki tablo, oluşturduğunuz tam metin dizini içeriğini gösterir parça 1 gösterir,Başlıkbelge sütun tablo.Tam metin dizinleri içeren bu sunulan daha fazla bilgiye tablo.tablo Tam metin dizini mantıksal bir temsilidir 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.

Verileri özgün belgelerden ters dikkat edin.Anahtar sözcükler kimlik belgesi eşlenmiş inversion oluşur.Bu nedenle, 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 olan ve stopwords bir tam metin dizini kaldırmak, böylece sorgu performansı artırma disk alanının önemli ölçüde tasarruf neden olabilir.Stopwords hakkında daha fazla bilgi için bkz:Stopwords ve Stoplists.

Parça 1

Anahtar Sözcük

ColId

DocId

Oluşumu

Crank

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.Word'ün ayırıcıları ne kadar bir simge yapar belirler.

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, bir tamsayı veri türü tam metin anahtarını olmadığı durumlarda gereklidir.Gibi durumlarda, tam metin arasında eşleme anahtar değerleri veDocId değerleri ayrı korunur tablo DocId eşleme adı verilen tablo.Bu eşlemeler kullanmak için sorgusp_fulltext_keymappings saklı yordam. sistemi Bir arama koşulu gerçekleştirmek için yukarıdaki tablodan DocId değerlerin satırlarını almak için DocId eşleme tablosunda katılması gerekir temel tablo sorgulanan.Temel tablonun tam metin anahtar değeri bir tamsayı türü, değer DocId doğrudan hizmet veren ve hiçbir eşleştirme gereklidir.Bu nedenle, tamsayı tam-metin anahtar değerleri kullanarak tam metin sorguları en iyi yardımcı olabilir.

The Occurrence column contains an integer value.DocId her değer için ilgili sözcüğü uzaklıklar belirli anahtar sözcüğünün bu DocId içinde karşılık gelen oluşumu değerler listesi vardır.Oluşumu değerler, tümcecik veya yakınlık eşleşmeleri belirlemede yararlıdır, örneğin ifadeler sayısal bitişik oluşumu değerleri.Ayrıca ilgili puan hesaplama yararlı oldukları; Skor anahtar sözcük bulunan bir DocId, yineleme için kullanılabilir.

Fulltext dizin parçaları

Mantıksal tam metin dizini genellikle üzerinde birden çok iç tablo ayrılır.İç her tablonun tam metin dizini bölümü adı verilir.Bu parça bazıları diğerlerinden daha yeni verileri içerebilir.Örneğin, bir kullanıcı, DocId 3 ise aşağıdaki satırı güncelleştirir ve tablo otomatik izlenen değişiklik varsa, yeni bir parça oluşturulur.

DocumentID

Başlık

3

Arka Reflector

Parça 2 gösteren aşağıdaki örnekte, parça parça 1'e kıyasla DocId 3 hakkında yeni veriler içerir.Bu nedenle, kullanıcı veri parçasını 2 "Arka Reflector" için sorgular DocId 3 için kullanılır.Her parçası 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üldüğü gibi her parça dahili sorgulamak ve eski girişlerini iptal etmek tam metin sorguları gerekir.Bu nedenle tam metin dizin içinde çok fazla tam metin dizini parçaları sorgu performansı önemli ölçüde düşmesine neden olabilir.To reduce the number of fragments, reorganize the fulltext catalog by using the REORGANIZE option of the ALTER FULLTEXT CATALOGTransact-SQL statement.Bu deyim yapan birana dizin birleştirmeparçaları tek bir büyük parça birleştirir ve kullanılmayan tüm girdileri kaldırır tam metin dizini. ,

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

Anahtar Sözcük

ColId

DocId

Occ

Crank

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