Condividi tramite


sp_fulltext_keymappings (Transact-SQL)

Restituisce i mapping tra gli identificatori del documento (DocIds) e i valori della chiave full-text. La colonna DocId contiene valori per un valore integer bigint che viene mappato a un determinato valore della chiave full-text in una tabella con indicizzazione 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 mappati 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. 

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_fulltext_keymappings { table_id | table_id, docid | table_id, NULL, key }

Parametri

  • table_id
    ID oggetto della tabella con indicizzazione full-text. Se si specifica un valore table_id non valido, viene restituito un errore. Per informazioni su come ottenere l'ID oggetto di una tabella, vedere OBJECT_ID (Transact-SQL).

  • docid
    Identificatore interno del documento (DocID) corrispondente al valore della chiave. Se si specifica un valore docid non valido, non viene restituito alcun risultato. Per ulteriori informazioni sugli identificatori del documento, vedere Struttura di un indice full-text.

  • 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 della chiave full-text, vedere Procedura: Richiesta di informazioni sulla colonna chiave full-text (Transact-SQL).

Nota importanteImportante

Per informazioni sull'utilizzo di uno, due o tre parametri, vedere la sezione "Osservazioni" più avanti in questo argomento.

Valori di codice restituiti

Nessuno.

Set di risultati

Nome colonna

Tipo di dati

Descrizione

DocId

bigint

Colonna dell'identificatore interno del documento (DocID) corrispondente al valore della chiave.

Key

*

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.

* Il tipo di dati per la colonna Key è lo stesso 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.

Elenco parametri

Risultato

table_id

In caso di richiamo solo con il parametro table_id, sp_fulltext_keymappings restituisce tutti i valori della chiave full-text (Key) della tabella di base specificata, nonché il valore DocId corrispondente a ogni chiave. Le chiavi in sospeso vengono eliminate.

Questa funzione consente di risolvere numerosi problemi ed è particolarmente utile per visualizzare il contenuto dell'indice full-text quando il tipo di dati della chiave full-text selezionata non è integer. L'operazione comporta l'unione in join dei risultati di sp_fulltext_keymappings e di quelli di sys.dm_fts_index_keywords_by_document. Per ulteriori informazioni, vedere sys.dm_fts_index_keywords_by_document (Transact-SQL).

In generale, quando possibile, è consigliabile tuttavia eseguire sp_fulltext_keymappings con parametri che indicano una chiave full-text o un valore DocId specifico Questa operazione risulta molto più efficiente rispetto alla restituzione di un'intera mappa di chiavi, soprattutto per una tabella di dimensioni elevate per cui il costo in termini di prestazioni della restituzione dell'intera mappa di chiavi potrebbe essere significativo.

table_id, docid

Se vengono specificati solo table_id e docid, docid deve essere un valore di verso da Null e deve indicare un valore 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, key

Se sono presenti tre parametri, il secondo parametro deve essere NULL e key deve essere diverso da NULL e indicare un valore della chiave full-text valido della 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:

  • Viene specificato un valore table_id non valido.

  • La tabella non è una tabella con indicizzazione full-text.

  • Viene rilevato il valore NULL per un parametro che può essere diverso da NULL.

Esempi

Nota

Negli esempi riportati in questa sezione utilizzare la tabella Production.ProductReview del database di esempio AdventureWorks2008R2. È possibile creare questo indice eseguendo l'esempio fornito per la tabella ProductReview in CREATE FULLTEXT INDEX (Transact-SQL).

A. Acquisizione di tutti i valori Key e DocId

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 stored procedure sp_fulltext_keymappings specificando @table_id per il parametro table_id.

Nota

L'utilizzo di sp_fulltext_keymappings con il solo parametro table_id è adatto per le piccole tabelle.

USE AdventureWorks2008R2;
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:

docid

key

1

1

1

2

2

2

3

3

3

4

4

4

B. Acquisizione del valore DocId per un valore Key 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 stored procedure sp_fulltext_keymappings specificando @table_id per il parametro table_id, NULL per il parametro docid e 4 per il parametro key.

Nota

L'utilizzo di sp_fulltext_keymappings con il solo parametro table_id è appropriato per le tabelle di piccole dimensioni.

USE AdventureWorks2008R2;
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.

docid

key

4

4

4