Udostępnij za pośrednictwem


Struktura indeksie pełnego tekstu

Dobre zrozumienie struktury indeks pełnotekstowy pomaga zrozumieć, w jaki sposób działa aparat Full-Text.W tym temacie używa następujących wyciąg z Dokument tabela in Adventure Works w przykładzie tabela. Ten fragment pokazuje tylko dwie kolumna, DocumentID i kolumn Tytuł kolumna, a trzy wiersze z tabela.

Uwaga

Aby uzyskać informacje na temat kolumn w tej tabela przykładowych zobacz Tabela dokument (AdventureWorks).

Na przykład, firma Microsoft przyjmie utworzenie na indeks pełnotekstowy Tytuł kolumna.

DocumentID

Title

1

Crank ramienia i konserwacja opona

2

Przednie nawias reflektor i zgromadzenie reflektor 3

3

Przednie instalacji nawias reflektor

Na przykład, poniższa tabela pokazuje 1 fragmentu, przedstawia zawartość indeks pełnotekstowy, utworzony na Tytuł kolumnaDokument tabeli.Indeksy pełnotekstowe zawierają więcej informacji niż w tej tabela.Tabela jest logiczną reprezentacją indeks pełnotekstowy i są udostępniane wyłącznie w celach demonstracyjnych.Wiersze są przechowywane w formacie skompresowanym, aby zoptymalizować wykorzystanie dysku.

Należy zauważyć, że dane ma już odwrócony z oryginalnych dokumentów.Odwracanie występuje, ponieważ słowa kluczowe są mapowane do dokumentu identyfikatorów.Indeks pełnotekstowy z tego powodu jest często określany jako indeks odwrócony.

Również zauważyć, że słowo kluczowe "i" została usunięta z indeksu pełnotekstowego.To jest wykonywane, ponieważ "i" jest stopword i usuwanie stopwords indeks pełnotekstowy może spowodować znaczne oszczędności w ten sposób zwiększania wydajności kwerendy miejsca na dysku.Aby uzyskać więcej informacji na temat stopwords zobacz Stopwords and Stoplists.

Fragment 1

Słowo kluczowe

ColId

DocId

Wystąpienie

Crank

1

1

1

Ramię

1

1

2

Opona

1

1

4

Konserwacja

1

1

5

Z przodu

1

2

1

Z przodu

1

3

1

Reflektor

1

2

2

Reflektor

1

2

5

Reflektor

1

3

2

Nawias kwadratowy

1

2

3

Nawias kwadratowy

1

3

3

Zestaw

1

2

6

3

1

2

7

Instalacja

1

3

4

The Keyword kolumna contains a representation of a single token extracted at indexing czas.Word wyłączników określają, co stanowi tokenu.

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

The DocId kolumna contains values for an eight-byte integer that maps to a particular full-text klucz value in a full-text indexed tabela.To mapowanie jest niezbędne, jeśli klucz pełnego tekstu nie jest typem danych liczby całkowitej.W takim wypadku mapowania między pełnego tekstu kluczowe wartości i DocId wartości są obsługiwane w osobnej tabela o nazwie DocId Mapowanie tabela.Kwerendy dla tych mapowań sp_fulltext_keymappings systemu procedura przechowywana.Spełnia warunek wyszukiwania, DocId wartości z powyższej tabeli muszą być połączone z tabeli DocId mapowanie w celu pobrania wierszy z tabela bazowa, którego dotyczy kwerenda.Jeśli wartość klucz pełnotekstowego w tabela bazowa jest typu Liczba całkowita, wartość bezpośrednio służy jako DocId i nie jest konieczne.W związku z tym za pomocą wartości klucz pełnotekstowego całkowitych może pomóc zoptymalizować kwerendy pełnego tekstu.

The Occurrence kolumna contains an integer value.Dla każdej wartości DocId jest lista wartości wystąpienia, które odpowiadają przesunięcia względne wyraz określonego słowa kluczowego, w tym DocId.Wystąpienia wartości są użyteczne przy określaniu frazę lub bliskości odpowiedników, na przykład frazy wystąpienie numerycznie sąsiadujących ze sobą wartości.Są one również przydatne w Obliczanie wyników znaczenia, na przykład, liczba wystąpień słowa kluczowego w DocId może być wykorzystany w liczbie punktów.

Fragmenty indeks pełnotekstowy

Logiczne indeks pełnotekstowy zazwyczaj jest dzielony między wieloma tabelami wewnętrznymi.Każda tabela wewnętrznego jest nazywany fragmentu indeks pełnotekstowy.Niektóre z tych fragmentów może zawierać dane nowsze niż inne.Na przykład jeśli użytkownik aktualizuje następujący wiersz, w których DocId jest 3, a tabela jest automatycznie śledzone zmiany, jest tworzony nowego fragmentu.

DocumentID

Title

3

Reflektor tylne

W poniższym przykładzie przedstawiono fragment 2, fragment zawiera nowsze dane dotyczące 3 DocId w porównaniu z 1 fragmentu.W związku z tym, kiedy użytkownik żąda "" tylne reflektor"dane z 2 fragmentu jest używany do DocId 3.Każdy fragment jest oznaczony atrybutem utworzenie sygnatury czasowej, które mogą być kierowane kwerendy przy użyciu sys.fulltext_index_fragments Służy do wyświetlania katalogu.

Fragment 2

Słowo kluczowe

ColId

DocId

Occ

Z tyłu

1

3

1

Reflektor

1

3

2

Jak wynika z 2 fragmentu kwerendy pełnego tekstu należy zbadać każdy fragment wewnętrznie i odrzucić starsze wpisy.W związku z tym za dużo fragmenty indeksu całego tekstu w indeksie pełnego tekstu może spowodować znaczne pogorszenie wydajności kwerendy.To reduce the number of fragments, reorganize the fulltext catalog by using the REORGANIZE option of the ALTER FULLTEXT CATALOGTransact-SQL statement.Ta instrukcja wykonuje Scalanie główne, które scala pojedynczego fragmentu większe fragmenty i usuwa wszystkie wpisy przestarzałe z indeksu pełnotekstowego.

Po zreorganizowana, indeks przykład zawiera następujące pozycje:

Słowo kluczowe

ColId

DocId

Occ

Crank

1

1

1

Ramię

1

1

2

Opona

1

1

4

Konserwacja

1

1

5

Z przodu

1

2

1

Z tyłu

1

3

1

Reflektor

1

2

2

Reflektor

1

2

5

Reflektor

1

3

2

Nawias kwadratowy

1

2

3

Zestaw

1

2

6

3

1

2

7