Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di Azure SQL
Database SQL su Microsoft Fabric
Restituisce tutto il contenuto correlato alla proprietà nell'indice full-text di una tabella specificata. Sono inclusi tutti i dati che appartengono a qualsiasi proprietà registrata dall'elenco delle proprietà di ricerca associato a tale indice full-text.
sys.dm_fts_index_keywords_by_property è una funzione di gestione dinamica che permette di vedere quali proprietà registrate sono state emesse da IFilters al momento dell'indice, così come il contenuto esatto di ogni proprietà in ogni documento indicizzato.
Per visualizzare tutti i contenuti a livello di documento (inclusi quelli relativi alla proprietà), vedi sys.dm_fts_index_keywords_by_document.
Per visualizzare le informazioni di indice integrale di livello superiore, vedi sys.dm_fts_index_keywords.
Per informazioni sugli elenchi di proprietà di ricerca, vedere Cerca proprietà documento con elenchi di proprietà di ricerca.
Sintassi
sys.dm_fts_index_keywords_by_property
(
DB_ID('database_name')
, OBJECT_ID('table_name')
)
Arguments
DB_ID('database_name')
Una chiamata alla funzione DB_ID .
DB_ID è inteinte. Questa funzione accetta un nome di database e restituisce l'ID del database, che sys.dm_fts_index_keywords_by_property serve a trovare il database specificato. Se database_name viene omesso, viene restituito l'ID del database corrente.
OBJECT_ID('table_name')
Una chiamata alla funzione OBJECT_ID .
OBJECT_ID è inteinte. Questa funzione accetta un nome di tabella e restituisce l'ID della tabella contenente l'indice del testo completo da ispezionare.
Tabella restituita
| Nome della colonna | Tipo di dati | Annulabile | Description |
|---|---|---|---|
keyword
1 |
varbinary(128) | No | Rappresentazione esadecimale della parola chiave archiviata nell'indice full-text. |
display_term
1 |
nvarchar(4000) | No | Formato leggibile della parola chiave derivato dal formato interno archiviato nell'indice full-text. |
column_id |
int | No | ID della colonna utilizzata per eseguire l'indicizzazione full-text della parola chiave corrente. |
document_id |
bigint | Sì | ID della riga o del documento utilizzato per eseguire l'indicizzazione full-text del termine corrente. L'ID corrisponde al valore della chiave full-text della riga o del documento specificato. |
property_id |
int | Sì | ID interno della proprietà di ricerca all'interno dell'indice full-text della tabella che hai specificato nel OBJECT_ID parametro. |
10xFF rappresenta il carattere speciale che indica la fine di un file o di un dataset.
Quando una determinata proprietà viene aggiunta a un elenco delle proprietà di ricerca, il motore di ricerca full-text registra la proprietà e le assegna un ID interno specifico di tale elenco di proprietà. L'ID di proprietà interno, che è un valore intero, è univoco per ogni elenco delle proprietà di ricerca. Se una determinata proprietà viene registrata in più elenchi di proprietà di ricerca, è possibile che a ciascun elenco di proprietà di ricerca venga assegnato un ID di proprietà interno.
Note
L'ID interno della proprietà è distinto dall'identificatore intero della proprietà specificato quando viene aggiunto la proprietà alla lista delle proprietà di ricerca. Per altre informazioni, vedere Eseguire ricerche nelle proprietà dei documenti con elenchi delle proprietà di ricerca.
Per vedere l'associazione tra property_id e il nome della proprietà, vedi sys.registered_search_properties.
Osservazioni:
Questa DMV può rispondere a domande come le seguenti:
Quale contenuto viene archiviato in una proprietà specificata per un dato DocID?
Quanto è comune una proprietà specificata tra i documenti indicizzati?
Quali documenti contiene effettivamente una proprietà specificata? Questo è utile se interrogare su una determinata proprietà di ricerca non restituisce un documento che ti aspettavi di trovare.
Quando la colonna chiave del testo completo è un tipo di dato intero, come raccomandato, questa document_id viene corrotta direttamente al valore della chiave del testo completo nella tabella base.
Al contrario, quando la colonna della chiave full-text utilizza un tipo di dato non intero, document_id non rappresenta la chiave full-text nella tabella base. In questo caso, per identificare la riga nella tabella base restituita da dm_fts_index_keywords_by_property, devi unire questa vista ai risultati restituiti da sp_fulltext_keymappings.
Prima di poter eseguire il join, è necessario archiviare l'output della stored procedure in una tabella temporanea Poi puoi unire la document_id colonna di dm_fts_index_keywords_by_property con la DocId colonna restituita da questa procedura memorizzata. Una colonna timestamp non può ricevere valori al momento dell'inserimento, perché vengono generati automaticamente da SQL Server. Pertanto, la colonna timestamp deve essere convertita in colonne varbinary(8). Nell'esempio seguente sono illustrati i passaggi per l'operazione. In questo esempio, @table_id è l'ID della tua tabella, database_name è il nome del tuo database e table_name è il nome della tua tabella.
USE database_name;
GO
CREATE TABLE #MyTempTable
(
docid INT PRIMARY KEY,
[key] INT NOT NULL
);
DECLARE @db_id AS INT = DB_ID(N'database_name');
DECLARE @table_id AS INT = OBJECT_ID(N'table_name');
INSERT INTO #MyTempTable
EXECUTE sp_fulltext_keymappings @table_id;
SELECT *
FROM sys.dm_fts_index_keywords_by_property(@db_id, @table_id) AS kbd
INNER JOIN #MyTempTable AS tt
ON tt.[docid] = kbd.document_id;
GO
Permissions
Richiede SELECT permesso sulle colonne coperte dall'indice del testo completo e CREATE FULLTEXT CATALOG permessi.
Examples
Nell'esempio seguente vengono restituite parole chiave dalla proprietà Author nell'indice full-text della tabella Production.Document del database di esempio AdventureWorks2025. L'esempio usa l'alias KWBPOP per la tabella restituita da sys.dm_fts_index_keywords_by_property L'esempio usa le join interne per combinare colonne da sys.registered_search_properties e 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 AdventureWorks2025;
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
Contenuti correlati
- Ricerca testuale completa
- Migliorare le prestazioni degli indici a testo completo
- 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)
- Cerca proprietà del documento con liste di proprietà di ricerca