sys.dm_fts_index_keywords_by_document (języka Transact-SQL)
Zwraca informacje o dokumencie -poziom zawartości indeksu pełnotekstowego dla określonej tabela.Danego słowa kluczowego mogą pojawiać się w różnych dokumentach.
sys.dm_fts_index_keywords_by_documentjest funkcja dynamicznego zarządzania.
Ostrzeżenie
Aby wyświetlić wyższej-poziom indeksu pełnotekstowego informacji, na kluczowe poziom, użyj sys.dm_fts_index_keywords (języka Transact-SQL) funkcja dynamicznego zarządzania.
Składnia
sys.dm_fts_index_keywords_by_document
(
DB_ID('database_name'), OBJECT_ID('table_name')
)
Argumenty
db_id ("database_name")
Wywołanie DB_ID() funkcja.Ta funkcja przyjmuje nazwę bazy danych i zwraca identyfikator bazy danych co sys.dm_fts_index_keywords_by_document do wyszukiwania określonej bazy danych.Jeśli database_name jest pominięty, bieżący identyfikator bazy danych zostanie zwrócona.object_id ("table_name")
Wywołanie OBJECT_ID() funkcja.Ta funkcja przyjmuje nazwę tabela i zwraca identyfikator tabela tabela zawierającą indeks pełnotekstowy do inspekcji.
Zwracana tabela
Column |
Typ danych |
Opis |
---|---|---|
keyword |
nvarchar(4000) |
Reprezentacja szesnastkowy słowa kluczowego, który jest przechowywany wewnątrz indeksu pełnotekstowego.
Uwaga:
OxFF reprezentuje znak specjalny, który wskazuje koniec pliku lub zestawu danych.
|
display_term |
nvarchar(4000) |
Format czytelny dla człowieka słowo kluczowe.Ten format jest pochodną wewnętrzny format, który jest przechowywany w indeksu pełnotekstowego.
Uwaga:
OxFF reprezentuje znak specjalny, który wskazuje koniec pliku lub zestawu danych.
|
column_id |
int |
Identyfikator kolumna , z którego bieżące słowo kluczowe zostało pełnotekstowego indeksowania. |
document_id |
int |
Identyfikator dokumentu lub wiersza, z której bieżący termin został pełnotekstowego indeksowania.Ten identyfikator odpowiada wartości klucz pełnotekstowego opartego tego dokumentu lub wiersza. |
occurrence_count |
int |
Liczba wystąpień bieżące słowo kluczowe w dokumencie lub wiersz, który jest wskazywany przez document_id. |
Uwagi
Informacje zwrócone przez sys.dm_fts_index_keywords_by_document jest przydatne w przypadku stwierdzenia, między innymi:
Całkowita liczba słów kluczowych, które wchodzą w skład indeksu pełnotekstowego.
Czy słowo kluczowe jest częścią danego dokumentu lub wiersza.
Ile razy słowa kluczowego pojawia się w całości pełnotekstowego indeksu; jest to:
(Suma(occurrence_count) gdzie słowa kluczowego=keyword_value )
Ile razy dany dokument lub wiersz pojawi się słowo kluczowe.
Jak wiele słów kluczowych zawiera dany dokument lub wiersz.
Ponadto umożliwia także informacji dostarczonych przez sys.dm_fts_index_keywords_by_document pobrać wszystkie słowa kluczowe należących do danego dokumentu lub wiersza.
W przypadku pełnego tekstu klucz kolumna danych typu Liczba całkowita zgodnie z zaleceniami, document_id mapy bezpośrednio do wartości klucz pełnotekstowego opartego w tabela bazowa.
Natomiast podczas pełnego tekstu klucz kolumna wykorzystuje typ danych nie jest liczbą całkowitą, document_id nie odzwierciedla pełnego tekstu klucz w tabela bazowa.W tym przypadekdo identyfikowania wiersza w tabela bazowa jest zwracany przez dm_fts_index_keywords_by_document, należy ten widok wyniki zwróconych przez łączyć sp_fulltext_keymappings.Zanim można łączyć je w tymczasowej tabelamuszą być przechowywane dane wyjściowe procedura składowana .Następnie można łączyć document_id kolumna dm_fts_index_keywords_by_document z DocId kolumna jest zwracana przez tę procedura składowana.Należy zauważyć, że timestamp kolumna nie można odebrać wartości w Wstaw czas, ponieważ one są automatycznie generowanej przez SQL Server.W związku z tym timestamp kolumna , należy przekonwertować na varbinary(8) kolumny.Poniższy przykład pokazuje następujące kroki.W tym przykładzie table_id jest Identyfikatorem tabela nazwa_bazy_danych jest nazwą bazy danych i nazwa_tabeli jest nazwą tabela.
USE database_name;
GO
CREATE TABLE #MyTempTable
(
docid INT PRIMARY KEY ,
[key] INT NOT NULL
);
DECLARE @db_id int = db_id(N'database_name');
DECLARE @table_id int = OBJECT_ID(N'table_name');
INSERT INTO #MyTempTable EXEC sp_fulltext_keymappings @table_id;
SELECT * FROM sys.dm_fts_index_keywords_by_document
( @db_id, @table_id ) kbd
INNER JOIN #MyTempTable tt ON tt.[docid]=kbd.document_id;
GO
Uprawnienia
Wymaga uprawnienia Utwórz katalog PEŁNOTEKSTOWY i uprawnienie SELECT kolumn objętych indeksu pełnotekstowego.
Przykłady
A.Wyświetlanie zawartości indeksu pełnotekstowego na poziomdokumentu
Poniższy przykład przedstawia zawartość indeksu pełnotekstowego na poziom dokumentu w HumanResources.JobCandidate tabela AdventureWorks2008R2 przykładowej bazy danych.
Ostrzeżenie
Indeks można utworzyć przez wykonywanie przykład przewidziane HumanResources.JobCandidate tabela w Utwórz indeks PEŁNOTEKSTOWY (Transact-SQL).
SELECT * FROM sys.dm_fts_index_keywords_by_document(db_id('AdventureWorks2008R2'),
object_id('HumanResources.JobCandidate'));
GO
Zobacz także