sp_fulltext_keymappings (Transact-SQL)
Si applica a: SQL Server Istanza gestita di SQL di Azure Piattaforma di strumenti analitici (PDW)
Restituisce i mapping tra gli identificatori del documento (DocIds) e i valori della chiave full-text. La colonna DocId contiene valori per un intero bigint che esegue il mapping a un determinato valore di chiave full-text in una tabella indicizzata full-text. I valori DocId che soddisfano una condizione di ricerca vengono passati dal motore di ricerca full-text al Motore di database dove vengono sottoposti al mapping ai valori della chiave full-text della tabella di base su cui viene eseguita la query. La colonna chiave full-text rappresenta l'indice univoco necessario in una colonna della tabella.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_fulltext_keymappings { table_id | table_id , docId | table_id , NULL , key }
[ ; ]
Argomenti
table_id
ID oggetto della tabella indicizzata full-text. Se si specifica un table_id non valido, viene restituito un errore. Per informazioni su come ottenere l'ID oggetto di una tabella, vedere OBJECT_ID.
docId
Identificatore di documento interno (DocId) che corrisponde al valore della chiave. Un valore docId non valido non restituisce risultati.
key
Valore della chiave full-text della tabella specificata. Se si specifica un valore key non valido, non viene restituito alcun risultato. Per informazioni sui valori di chiave full-text, vedere Creare e gestire indici full-text.
Valori del codice restituito
Nessuno.
Set di risultati
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
DocId |
bigint | Colonna docId (Document Identifier) interna che corrisponde al valore della chiave. |
Key |
1 | Valore della chiave full-text della tabella specificata. Se nella tabella di mapping non esiste alcuna chiave full-text, viene restituito un set di righe vuoto. |
1 Il tipo di dati per Key è uguale al tipo di dati della colonna chiave full-text nella tabella di base.
Autorizzazioni
Questa funzione è pubblica e non richiede autorizzazioni speciali.
Osservazioni:
Nella tabella seguente viene descritto l'effetto ottenuto nel caso si utilizzino uno, due o tre parametri.
Questo elenco di parametri... | Ha questo risultato... |
---|---|
table_id | Quando viene richiamato solo con il parametro table_id , sp_fulltext_keymappings restituisce tutti i valori chiave full-text (Key) della tabella di base specificata, insieme all'elemento DocId corrispondente a ogni chiave. Le chiavi in sospeso vengono eliminate.Questa funzione è utile per la risoluzione di vari problemi. È utile per visualizzare il contenuto dell'indice full-text quando la chiave full-text selezionata non è di un tipo di dati integer. Ciò comporta l'unione dei risultati di sp_fulltext_keymappings con i risultati di sys.dm_fts_index_keywords_by_document . Per altre informazioni, vedere sys.dm_fts_index_keywords_by_document.In generale, tuttavia, è consigliabile eseguire sp_fulltext_keymappings , se possibile, con parametri che specificano una chiave full-text specifica o DocId. Questa operazione è molto più efficiente rispetto alla restituzione di un'intera mappa chiave, soprattutto per una tabella di grandi dimensioni per cui il costo delle prestazioni della restituzione dell'intera mappa chiave potrebbe essere sostanziale. |
table_id, docId | Se vengono specificati solo i table_id e docId , docId deve essere diverso da NULL e specificare un DocId valido nella tabella specificata. Questa funzione è utile per isolare la chiave full-text personalizzata della tabella di base corrispondente al valore DocId di un determinato indice full-text. |
table_id, NULL , chiave |
Se sono presenti tre parametri, il secondo parametro deve essere NULL e la chiave deve essere diversa da NULL e specificare un valore di chiave full-text valido dalla tabella specificata. Questa funzione è utile per isolare il valore DocId corrispondente a una chiave full-text specifica della tabella di base. |
Se si verifica una delle condizioni seguenti, viene restituito un errore:
- Si specifica un table_id non valido
- La tabella non è indicizzata full-text
NULL
viene rilevato per un parametro che potrebbe essere diverso da Null.
Esempi
Nota
Gli esempi in questa sezione usano la Production.ProductReview
tabella del database di esempio AdventureWorks2022. È possibile creare questo indice eseguendo l'esempio fornito per la ProductReview
tabella in CREATE FULLTEXT INDEX.
R. Ottenere tutti i valori Key e DocId
Nell'esempio seguente viene utilizzata un'istruzione DECLARE @local_variable per creare una variabile @table_id
locale e per assegnare l'ID della ProductReview
tabella come valore. L'esempio viene eseguito sp_fulltext_keymappings
specificando @table_id
per il parametro table_id .
Nota
L'uso sp_fulltext_keymappings
solo con il parametro table_id è adatto per le tabelle di piccole dimensioni.
USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO
In questo esempio vengono restituite tutte i valori di DocId e le chiavi full-text dalla tabella come segue:
TABLE | docId | key |
---|---|---|
1 |
1 |
1 |
2 |
2 |
2 |
3 |
3 |
3 |
4 |
4 |
4 |
B. Ottenere il valore DocId per un valore chiave specifico
Nell'esempio seguente viene utilizzata un'istruzione DECLARE per creare una variabile locale, @table_id
, e assegnare l'ID della tabella ProductReview
come valore. Nell'esempio viene eseguita la specifica @table_id
per il parametro table_id, NULL
per il parametro docId e 4 per il parametro key.sp_fulltext_keymappings
Nota
Uso sp_fulltext_keymappings
solo con i parametri table_id adatti per le tabelle di piccole dimensioni.
USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO
Nell'esempio vengono restituiti i risultati seguenti.
TABLE | docId | key |
---|---|---|
4 |
4 |
4 |