Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Är en funktion som används i FROM-klausulen i en Transact-SQL SELECT-sats för att utföra en fulltextsökning i SQL Server på fulltextindexerade kolumner som innehåller teckenbaserade datatyper. Denna funktion returnerar en tabell med noll, en eller flera rader för de kolumner som innehåller värden som stämmer överens med textens betydelse och inte bara den exakta formuleringen i den angivna freetext_string. FREETEXTTABLE refereras som om det vore ett vanligt tabellnamn.
FREETEXTTABLE är användbart för samma typer av matchningar som FREETEXT (Transact-SQL),
Frågor som använder FREETEXTTABLE ger ett relevansrangeringsvärde (RANK) och fulltextnyckel (KEY) för varje rad.
Anmärkning
Information om de former av fulltextsökningar som stöds av SQL Server finns i Query with Full-Text Search.
Transact-SQL syntaxkonventioner
Syntax
FREETEXTTABLE (table , { column_name | (column_list) | * }
, 'freetext_string'
[ , LANGUAGE language_term ]
[ , top_n_by_rank ] )
Arguments
table
Är namnet på tabellen som har markerats för fulltextförfrågningar.
Tabell eller vykan vara ett en-, två- eller tredelat databasobjektnamn. Vid en sökning i en vy kan endast en fulltextindexerad bastabell vara involverad.
Table kan inte specificera ett servernamn och kan inte användas i frågor mot länkade servrar.
column_name
Är namnet på en eller flera fulltextindexerade kolumner i tabellen som anges i FROM-satsen. Kolumnerna kan vara av typen
column_list
Anger att flera kolumner, avgränsade med ett kommatecken, kan anges.
column_list måste omges av parenteser. Om inte language_term anges måste språket för alla kolumner i column_list vara detsamma.
*
Anger att alla kolumner som har registrerats för fulltextsökning ska användas för att söka efter den angivna freetext_string. Om inte language_term anges måste språket för alla fulltextindexerade kolumner i tabellen vara detsamma.
freetext_string
Är text att söka efter i column_name. All text, inklusive ord, fraser eller meningar, kan anges. Matchningar genereras om någon term eller formerna för någon term hittas i fulltextindexet.
Till skillnad från i CONTAINS-sökvillkoret där AND är ett nyckelord, betraktas ordet 'and' när det används i freetext_string som ett brusord, eller stoppord, och kommer att kasseras.
Användning av WEIGHT, FORMSOF, jokertecken, NEAR och annan syntax tillåts inte. freetext_string är ordbrokad, stemmed och passerade genom synonymordlistan.
SPRÅK language_term
Är det språk vars resurser kommer att användas för ordbrytning, härstamning och synonymordsborttagning som en del av frågan. Den här parametern är valfri och kan anges som ett sträng-, heltals- eller hexadecimalt värde som motsvarar språkidentifieraren (LCID). Om language_term anges tillämpas det språk som det representerar på alla element i sökvillkoret. Om inget värde anges används kolumnens fulltextspråk.
Om dokument med olika språk lagras tillsammans som binära stora objekt (BLOB) i en enda kolumn, avgör språkidentifieraren (LCID) för ett visst dokument vilket språk som används för att indexera innehållet. När man söker en sådan kolumn kan angivning av LANGUAGE language_term öka sannolikheten för en bra matchning.
När den anges som en sträng motsvarar language_termaliaskolumnens värde i sys.syslanguages (Transact-SQL) kompatibilitetsvyn. Strängen måste omges av enkla citattecken, som i "language_term". När det anges som ett heltal är language_term den faktiska LCID som identifierar språket. När det anges som ett hexadecimalt värde är language_term 0x följt av hexadecimalt värde för LCID. Hexadecimalt värde får inte överstiga åtta siffror, inklusive inledande nollor.
Om värdet är i DBCS-format (double-byte character set) konverterar Microsoft SQL Server det till Unicode.
Om det angivna språket inte är giltigt eller om inga resurser installeras som motsvarar det språket, ger SQL Server ett felmeddelande. Om du vill använda neutrala språkresurser anger du 0x0 som language_term.
top_n_by_rank
Anger att endast de nhögst rankade matcherna, i fallande ordning, returneras. Gäller endast när ett heltalsvärde, n, anges. Om top_n_by_rank kombineras med andra parametrar kan frågan returnera färre rader än antalet rader som faktiskt matchar alla predikat.
top_n_by_rank gör att du kan öka frågeprestandan genom att bara återkalla de mest relevanta träffarna.
Anmärkningar
Fulltextpredikat och funktioner fungerar på en enda tabell, vilket är underförstått i FROM-predikatet. Om du vill söka i flera tabeller använder du en ansluten tabell i FROM-satsen för att söka efter en resultatuppsättning som är produkten av två eller flera tabeller.
FREETEXTTABLE använder samma sökvillkor som FREETEXT-predikatet.
Liksom CONTAINSTABLE har tabellen kolumner som returneras med namnen KEY och RANK, vilka refereras inom frågan för att erhålla lämpliga rader och använda radrankningsvärdena.
Permissions
FREETEXTTABLE kan endast anropas av användare med lämpliga SELECT-rättigheter för den angivna tabellen eller de refererade kolumnerna i tabellen.
Examples
A. Enkelt exempel
Följande exempel skapar och fyller i en enkel tabell med två kolumner, som listar 3 län och färgerna i deras flaggor. Sedan skapar och fyller den i ett fulltextkatalog och index i tabellen. Sedan demonstreras FRITEXTTABELLENS syntax.
CREATE TABLE Flags (Country nvarchar(30) NOT NULL, FlagColors varchar(200));
CREATE UNIQUE CLUSTERED INDEX FlagKey ON Flags(Country);
INSERT Flags VALUES ('France', 'Blue and White and Red');
INSERT Flags VALUES ('Italy', 'Green and White and Red');
INSERT Flags VALUES ('Tanzania', 'Green and Yellow and Black and Yellow and Blue');
SELECT * FROM Flags;
GO
CREATE FULLTEXT CATALOG TestFTCat;
CREATE FULLTEXT INDEX ON Flags(FlagColors) KEY INDEX FlagKey ON TestFTCat;
GO
SELECT * FROM Flags;
SELECT * FROM FREETEXTTABLE (Flags, FlagColors, 'Blue');
SELECT * FROM FREETEXTTABLE (Flags, FlagColors, 'Yellow');
B. Att använda FRITEXT i en INNER JOIN
Följande exempel returnerar beskrivningen och rangen för alla produkter med en beskrivning som matchar betydelsen av high level of performance.
USE AdventureWorks2022;
GO
SELECT FT_TBL.Description
,KEY_TBL.RANK
FROM Production.ProductDescription AS FT_TBL
INNER JOIN FREETEXTTABLE(Production.ProductDescription,
Description,
'high level of performance') AS KEY_TBL
ON FT_TBL.ProductDescriptionID = KEY_TBL.[KEY]
ORDER BY RANK DESC;
GO
C. Specificering av språk och högst rankade matcher
Följande exempel är identiskt och visar användningen av parametrarnaLANGUAGE language_term och top_n_by_rank.
USE AdventureWorks2022;
GO
SELECT FT_TBL.Description
,KEY_TBL.RANK
FROM Production.ProductDescription AS FT_TBL
INNER JOIN FREETEXTTABLE(Production.ProductDescription,
Description,
'high level of performance',
LANGUAGE N'English', 2) AS KEY_TBL
ON FT_TBL.ProductDescriptionID = KEY_TBL.[KEY]
ORDER BY RANK DESC;
GO
Anmärkning
LANGUAGE language_term-parametern behöver inte använda parametern top_n_by_rank .
Se även
Kom igång med Full-Text Search
Skapa och hantera Full-Text kataloger
SKAPA FULLTEXTKATALOG (Transact-SQL)
SKAPA FULLTEXTINDEX (Transact-SQL)
Skapa och hantera Full-Text index
fråga med Full-Text Sök
Skapa Full-Text sökfrågor (Visual Database Tools)
INNEHÅLLER (Transact-SQL)
CONTAINSTABLE (Transact-SQL)
FRITEXT (Transact-SQL)
Radmängdsfunktioner (Transact-SQL)
SELECT (Transact-SQL)
DÄR (Transact-SQL)
precompute rank Server Configuration Option
Jämför funktioner i Azure SQL Database och Azure SQL Managed Instance