Condividi tramite


sp_fulltext_keymappings (Transact-SQL)

Si applica a:SQL ServerIstanza gestita di SQL di AzurePiattaforma 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 NULLe 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 sp_fulltext_keymappings per il @table_id, per il NULL e 4 per il parametro key.

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, NULL, 4;
GO

Nell'esempio vengono restituiti i risultati seguenti.

TABLE docId key
4 4 4