sys.dm_fts_index_keywords_by_document(Transact-SQL)
적용 대상:SQL ServerAzure SQL Managed InstanceAnalytics Platform System(PDW)
지정된 테이블에 연결된 전체 텍스트 인덱스의 문서 수준 내용에 대한 정보를 반환합니다.
sys.dm_fts_index_keywords_by_document는 동적 관리 함수입니다.
상위 수준 전체 텍스트 인덱스 정보를 보려면
문서 속성과 관련된 속성 수준 콘텐츠에 대한 정보를 보려면
구문
sys.dm_fts_index_keywords_by_document
(
DB_ID('database_name'), OBJECT_ID('table_name')
)
인수
db_id('database_name')
DB_ID() 함수에 대한 호출입니다. 이 함수는 데이터베이스 이름을 받아서 데이터베이스 ID를 반환합니다. 이 ID는 지정된 데이터베이스를 찾기 위해 sys.dm_fts_index_keywords_by_document에 사용됩니다. database_name 생략하면 현재 데이터베이스 ID가 반환됩니다.
object_id('table_name')
OBJECT_ID() 함수에 대한 호출입니다. 이 함수는 테이블 이름을 허용하고 검사할 전체 텍스트 인덱스가 포함된 테이블의 테이블 ID를 반환합니다.
반환된 테이블
열 | 데이터 형식 | 설명 |
---|---|---|
keyword | nvarchar(4000) | 전체 텍스트 인덱스 내에 저장되는 키워드의 16진수 표현입니다. 참고: OxFF는 파일 또는 데이터 세트의 끝을 나타내는 특수 문자를 나타냅니다. |
display_term | nvarchar(4000) | 사람이 인식할 수 있는 키워드 형식입니다. 이 형식은 전체 텍스트 인덱스로 저장된 내부 형식에서 파생됩니다. 참고: OxFF는 파일 또는 데이터 세트의 끝을 나타내는 특수 문자를 나타냅니다. |
column_id | int | 현재 키워드가 전체 텍스트 인덱싱된 열의 ID입니다. |
document_id | int | 현재 용어가 전체 텍스트 인덱싱된 문서 또는 행의 ID입니다. 이 ID는 해당 문서 또는 행의 전체 텍스트 키 값에 해당합니다. |
occurrence_count | int | 문서 또는 행에서 document_id 표시되는 현재 키워드의 발생 횟수입니다. 'search_property_name'을 지정하면 occurrence_count 문서 또는 행 내의 지정된 검색 속성에서 현재 키워드의 발생 횟수만 표시합니다. |
설명
sys.dm_fts_index_keywords_by_document 반환된 정보는 다음을 찾는 데 유용합니다.
전체 텍스트 인덱스에 포함된 총 키워드 수
키워드가 지정된 문서 또는 행의 일부인지 여부입니다.
전체 텍스트 인덱스에 키워드가 표시되는 횟수입니다. 말하자면:
(SUM(occurrence_count) WHERE 키워드=keyword_value )
지정된 문서 또는 행에 키워드가 표시되는 횟수입니다.
지정된 문서 또는 행에 포함된 키워드 수입니다.
또한 sys.dm_fts_index_keywords_by_document 제공된 정보를 사용하여 지정된 문서 또는 행에 속하는 모든 키워드를 검색할 수도 있습니다.
전체 텍스트 키 열이 정수 데이터 형식인 경우 권장되는 대로 document_id 기본 테이블의 전체 텍스트 키 값에 직접 매핑됩니다.
반면 전체 텍스트 키 열에서 정수가 아닌 데이터 형식을 사용하는 경우 document_id 기본 테이블의 전체 텍스트 키를 나타내지 않습니다. 이 경우 dm_fts_index_keywords_by_document 반환된 기본 테이블의 행을 식별하려면 이 뷰를 sp_fulltext_keymappings 반환된 결과와 조인해야 합니다. 조인하려면 먼저 저장 프로시저의 출력을 임시 테이블에 저장해야 합니다. 그런 다음 이 저장 프로시저에서 반환되는 DocId 열과 dm_fts_index_keywords_by_document document_id 열을 조인할 수 있습니다. 타임스탬프 열은 SQL Server에서 자동으로 생성되므로 삽입 시 값을 받을 수 없습니다. 따라서 타임스탬프 열은 varbinary(8) 열로 변환되어야 합니다. 다음 예제에서는 이러한 단계를 보여줍니다. 이 예제 에서 table_id 테이블의 ID이고, database_name 데이터베이스의 이름이고 , table_name 테이블의 이름입니다.
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
사용 권한
전체 텍스트 인덱스 및 CREATE FULLTEXT CATALOG 권한이 적용되는 열에 대한 SELECT 권한이 필요합니다.
예
A. 문서 수준에서 전체 텍스트 인덱스 콘텐츠 표시
다음은 샘플 데이터베이스 테이블의 문서 수준에서 HumanResources.JobCandidate
전체 텍스트 인덱스의 AdventureWorks2022
내용을 표시하는 예제입니다.
참고 항목
CREATE FULLTEXT INDEX(Transact-SQL)에서 테이블에 제공된 예제를 HumanResources.JobCandidate
실행하여 이 인덱을 만들 수 있습니다.
SELECT * FROM sys.dm_fts_index_keywords_by_document(db_id('AdventureWorks2022'),
object_id('HumanResources.JobCandidate'));
GO
참고 항목
전체 텍스트 검색 및 의미 체계 검색 동적 관리 뷰 및 함수(Transact-SQL)
전체 텍스트 검색
sys.dm_fts_index_keywords(Transact-SQL)
sys.dm_fts_index_keywords_by_property(Transact-SQL)
sp_fulltext_keymappings(Transact-SQL)
전체 텍스트 인덱스 성능 향상
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기