sys.dm_fts_index_keywords_by_property(Transact-SQL)
적용 대상: SQL Server
지정된 테이블의 전체 텍스트 인덱스의 모든 속성 관련 콘텐츠를 반환합니다. 여기에는 해당 전체 텍스트 인덱스와 연결된 검색 속성 목록에 의해 등록된 모든 속성에 속하는 모든 데이터가 포함됩니다.
sys.dm_fts_index_keywords_by_property 인덱스 시간에 IFilters에서 내보낸 등록된 속성과 인덱싱된 각 문서의 모든 속성의 정확한 내용을 확인할 수 있는 동적 관리 함수입니다.
모든 문서 수준 콘텐츠(속성 관련 콘텐츠 포함)를 보려면
상위 수준 전체 텍스트 인덱스 정보를 보려면
참고 항목
검색 속성 목록에 대한 자세한 내용은 검색 속성 목록을 사용하여 문서 속성 검색을 참조 하세요.
구문
sys.dm_fts_index_keywords_by_property
(
DB_ID('database_name'),
OBJECT_ID('table_name')
)
인수
db_id('database_name')
DB_ID() 함수에 대한 호출입니다. 이 함수는 데이터베이스 이름을 허용하고 데이터베이스 ID를 반환하며, sys.dm_fts_index_keywords_by_property 지정된 데이터베이스를 찾는 데 사용합니다. 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는 해당 문서 또는 행의 전체 텍스트 키 값에 해당합니다. |
property_id | int | OBJECT_ID('table_name') 매개 변수에 지정한 테이블의 전체 텍스트 인덱스 내에 있는 검색 속성의 내부 속성 ID입니다. 지정된 속성이 검색 속성 목록에 추가되면 전체 텍스트 엔진이 속성을 등록하고 속성 목록에 고유한 내부 속성 ID를 할당합니다. 지정된 검색 속성 목록에 고유한 내부 속성 ID이며 정수입니다. 지정된 속성이 여러 검색 속성 목록에 등록된 경우 각 검색 속성 목록에 대해 다른 내부 속성 ID가 할당될 수 있습니다. 참고: 내부 속성 ID는 검색 속성 목록에 속성을 추가할 때 지정된 속성 정수 식별자와 다릅니다. 자세한 내용은 검색 속성 목록을 사용하여 문서 속성 검색을 참조하세요. property_id 속성 이름 간의 연결을 보려면 다음을 수행합니다. sys.registered_search_properties(Transact-SQL) |
설명
이 동적 관리 뷰는 다음과 같은 질문에 대답할 수 있습니다.
지정된 DocID에 대해 지정된 속성에 저장되는 콘텐츠는 무엇인가요?
인덱싱된 문서 중에서 지정된 속성은 얼마나 일반적입니까?
실제로 지정된 속성이 포함된 문서는 무엇인가요? 이 기능은 지정된 검색 속성에 대한 쿼리가 찾으려는 문서를 반환하지 않는 경우에 유용합니다.
전체 텍스트 키 열이 정수 데이터 형식인 경우 권장되는 대로 document_id 기본 테이블의 전체 텍스트 키 값에 직접 매핑됩니다.
반면 전체 텍스트 키 열에서 정수가 아닌 데이터 형식을 사용하는 경우 document_id 기본 테이블의 전체 텍스트 키를 나타내지 않습니다. 이 경우 dm_fts_index_keywords_by_property 반환되는 기본 테이블의 행을 식별하려면 이 뷰를 sp_fulltext_keymappings 반환된 결과와 조인해야 합니다. 조인하려면 먼저 저장 프로시저의 출력을 임시 테이블에 저장해야 합니다. 그런 다음 이 저장 프로시저에서 반환되는 DocId 열과 dm_fts_index_keywords_by_property 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_property
( @db_id, @table_id ) kbd
INNER JOIN #MyTempTable tt ON tt.[docid]=kbd.document_id;
GO
사용 권한
전체 텍스트 인덱스 및 CREATE FULLTEXT CATALOG 권한이 적용되는 열에 대한 SELECT 권한이 필요합니다.
예제
다음 예제에서는 샘플 데이터베이스 테이블의 Author
전체 텍스트 인덱스에 있는 속성의 Production.Document
키워드를 AdventureWorks
반환합니다. 이 예제에서는 sys.dm_fts_index_keywords_by_property 반환된 테이블의 별칭 KWBPOP
을 사용합니다. 이 예제에서는 내부 조인을 사용하여 sys.registered_search_properties 및 sys.fulltext_indexes 열을 결합합니다.
-- Once the full-text index is configured to support property searching
-- on the Author property, return any keywords indexed for this property.
USE AdventureWorks2022;
GO
SELECT KWBPOP.* FROM
sys.dm_fts_index_keywords_by_property( DB_ID(),
object_id('Production.Document') ) AS KWBPOP
INNER JOIN
sys.registered_search_properties AS RSP ON(
(KWBPOP.property_id = RSP.property_id)
AND (RSP.property_name = 'Author') )
INNER JOIN
sys.fulltext_indexes AS FTI ON(
(FTI.[object_id] = object_id('Production.Document'))
AND (RSP.property_list_id = FTI.property_list_id) );
GO
참고 항목
전체 텍스트 검색
전체 텍스트 인덱스 성능 향상
sp_fulltext_keymappings(Transact-SQL)
sys.dm_fts_index_keywords_by_document(Transact-SQL)
sys.dm_fts_index_keywords(Transact-SQL)
sys.registered_search_properties(Transact-SQL)
sys.registered_search_property_lists(Transact-SQL)
검색 속성 목록을 사용하여 문서 속성 검색