sp_fulltext_keymappings (Transact-SQL)
van toepassing op:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
Retourneert toewijzingen tussen document-id's (DocIds) en sleutelwaarden voor volledige tekst. De kolom DocId bevat waarden voor een bigint geheel getal dat is toegewezen aan een bepaalde sleutelwaarde voor volledige tekst in een geïndexeerde tabel met volledige tekst. DocId-waarden die voldoen aan een zoekvoorwaarde, worden doorgegeven vanuit de Full-Text Engine aan de database-engine, waar ze worden toegewezen aan sleutelwaarden voor volledige tekst uit de basistabel waarop een query wordt uitgevoerd. De sleutelkolom voor volledige tekst is een unieke index die vereist is voor één kolom van de tabel.
Transact-SQL syntaxisconventies
Syntaxis
sp_fulltext_keymappings { table_id | table_id , docId | table_id , NULL , key }
[ ; ]
Argumenten
table_id
De object-id van de geïndexeerde tabel in volledige tekst. Als u een ongeldige table_idopgeeft, wordt er een fout geretourneerd. Zie OBJECT_IDvoor informatie over het verkrijgen van de object-id van een tabel.
docId-
Een interne document-id (DocId) die overeenkomt met de sleutelwaarde. Een ongeldige docId waarde retourneert geen resultaten.
sleutel
De sleutelwaarde voor volledige tekst uit de opgegeven tabel. Een ongeldige sleutel waarde retourneert geen resultaten. Zie Volledige-tekstindexen maken en beherenvoor meer informatie over sleutelwaarden voor volledige tekst.
Codewaarden retourneren
Geen.
Resultatenset
Kolomnaam | Gegevenstype | Beschrijving |
---|---|---|
DocId |
grote | Een interne document-id -kolom (DocId) die overeenkomt met de sleutelwaarde. |
Key |
1 | De sleutelwaarde voor volledige tekst uit de opgegeven tabel. Als er geen volledige-tekstsleutels in de toewijzingstabel bestaan, wordt er een lege rijenset geretourneerd. |
1 Het gegevenstype voor Sleutel is hetzelfde als het gegevenstype van de kolom met volledige tekst in de basistabel.
Machtigingen
Deze functie is openbaar en vereist geen speciale machtigingen.
Opmerkingen
In de volgende tabel wordt het effect van het gebruik van één, twee of drie parameters beschreven.
Deze lijst met parameters... | Heeft dit resultaat... |
---|---|
table_id | Wanneer deze wordt aangeroepen met alleen de parameter table_id, retourneert sp_fulltext_keymappings alle sleutelwaarden (full text key) uit de opgegeven basistabel, samen met de DocId die overeenkomt met elke sleutel. Dit omvat sleutels die in behandeling zijn om te verwijderen.Deze functie is handig voor het oplossen van verschillende problemen. Het is handig om de inhoud van de volledige tekstindex te zien wanneer de geselecteerde volledige-tekstsleutel geen gegevenstype geheel getal heeft. Dit omvat het samenvoegen van de resultaten van sp_fulltext_keymappings met de resultaten van sys.dm_fts_index_keywords_by_document . Zie sys.dm_fts_index_keywords_by_documentvoor meer informatie.Over het algemeen raden we echter aan om, indien mogelijk, sp_fulltext_keymappings uit te voeren met parameters die een specifieke volledige-tekstsleutel of DocId opgeven. Dit is veel efficiënter dan het retourneren van een volledige sleutelkaart, met name voor een grote tabel waarvoor de prestatiekosten voor het retourneren van de hele sleutelkaart aanzienlijk kunnen zijn. |
table_id, docId | Als alleen de table_id en docId- zijn opgegeven, moet docId- niet NULL zijn en een geldige DocId opgeven in de opgegeven tabel. Deze functie is handig om de aangepaste volledige-tekstsleutel te isoleren van de basistabel die overeenkomt met de DocId van een bepaalde volledige-tekstindex. |
table_id, NULL , sleutel |
Als er drie parameters aanwezig zijn, moet de tweede parameter worden NULL en moet sleutel- niet-NULL zijn en een geldige sleutelwaarde voor volledige tekst opgeven uit de opgegeven tabel. Deze functie is handig bij het isoleren van de DocId die overeenkomt met een bepaalde volledige-tekstsleutel uit de basistabel. |
Er wordt een fout geretourneerd onder een van de volgende voorwaarden:
- U geeft een ongeldige table_id
- De tabel is niet geïndexeerd in volledige tekst
-
NULL
wordt aangetroffen voor een parameter die mogelijk niet null is.
Voorbeelden
Notitie
In de voorbeelden in deze sectie wordt de Production.ProductReview
tabel van de voorbeelddatabase AdventureWorks2022 gebruikt. U kunt deze index maken door het voorbeeld voor de ProductReview
tabel uit te voeren in CREATE FULLTEXT INDEX.
Een. Alle sleutel- en DocId-waarden verkrijgen
In het volgende voorbeeld wordt een DECLARE @local_variable-instructie gebruikt om een lokale variabele te maken, @table_id
en om de id van de ProductReview
tabel toe te wijzen als waarde. In het voorbeeld wordt sp_fulltext_keymappings
@table_id
voor de parameter table_id opgegeven.
Notitie
Het gebruik van sp_fulltext_keymappings
met alleen de parameter table_id is geschikt voor kleine tabellen.
USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO
In dit voorbeeld worden alle DocIds en volledige-tekstsleutels uit de tabel als volgt geretourneerd:
TAFEL | docId | sleutel |
---|---|---|
1 |
1 |
1 |
2 |
2 |
2 |
3 |
3 |
3 |
4 |
4 |
4 |
B. De DocId-waarde voor een specifieke sleutelwaarde verkrijgen
In het volgende voorbeeld wordt een DECLARE-instructie gebruikt om een lokale variabele te maken, @table_id
en om de id van de ProductReview
tabel toe te wijzen als waarde. In het voorbeeld wordt sp_fulltext_keymappings
@table_id
opgegeven voor de parameter table_id, NULL
voor de parameter docId en 4 voor de parameter sleutel.
Notitie
Het gebruik van sp_fulltext_keymappings
met alleen de parameter table_id is geschikt voor kleine tabellen.
USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO
In dit voorbeeld worden de volgende resultaten geretourneerd.
TAFEL | docId | sleutel |
---|---|---|
4 |
4 |
4 |