Konfigurera och hantera stoppord och stopplistor för Full-Text search
gäller för:SQL ServerAzure SQL Database
För att förhindra att ett fulltextindex blir uppsvälld har SQL Server en mekanism som tar bort vanliga strängar som inte hjälper sökningen. Dessa borttagna strängar kallas stoppord. När indexet skapas utelämnar Full-Text Engine stoppord från fulltextindexet. Det innebär att fulltextfrågor inte söker efter stoppord.
Stopwords. Ett stoppord kan vara ett ord med betydelse på ett visst språk. På det engelska språket lämnas till exempel ord som "a", "och", "is" och "the" kvar i fulltextindexet eftersom de är kända för att vara värdelösa för en sökning. Ett stoppord kan också vara en token som inte har språklig betydelse.
stopplistor. Stopword hanteras i databaser med hjälp av objekt som kallas stopplistor. En stoplist- är en lista över stoppord som, när de är associerade med ett fulltextindex, tillämpas på fulltextfrågor i indexet.
Använda en befintlig stopplista
Du kan använda en befintlig stopplista på följande sätt:
Använd den systemspecifika stopplistan i databasen. SQL Server levereras med en systemstopplista som innehåller de vanligaste stopporden för varje språk som stöds, vilket är för varje språk som är associerat med givna ordbrytare som standard. Du kan kopiera systemstopplistan och anpassa din kopia genom att lägga till och ta bort stoppord.
Systemstopplistan installeras i databasen Resource.
Använd en befintlig anpassad stopplista från en annan databas i den aktuella serverinstansen och lägg sedan till eller släpp stoppord efter behov.
Skapa en ny stopplista
Skapa en ny stopplista med Transact-SQL
Använd CREATE FULLTEXT STOPLIST.
Skapa en ny stopplista med Management Studio
Expandera servern i Object Explorer.
Expandera Databaseroch expandera sedan den databas där du vill skapa en fulltextstopplista.
Expandera Storageoch högerklicka sedan på Full-Text Stopplistor.
Välj Ny Full-Text Stopplista.
Ange namnet på den nya stopplistan.
Du kan också ange någon annan som stoplist-ägare.
Välj något av följande alternativ för att skapa en stopplista:
Skapa en tom stoppordlista
Skapa från systemstopplistan
Skapa från en befintlig stopplista i fulltext
Mer information finns i New Full-Text Stoplist (allmän sida).
Välj OK.
Använda en stopplista i fulltextfrågor
Om du vill använda en stopplista i frågor måste du associera den med ett fulltextindex. Du kan koppla en stopplista till ett fulltextindex när du skapar indexet, eller så kan du ändra indexet senare för att lägga till en stopplista.
Skapa ett fulltextindex och associera en stopplista med det
Använd CREATE FULLTEXT INDEX (Transact-SQL).
Associera eller koppla bort en stopplista med ett befintligt fulltextindex
Använd ALTER FULLTEXT INDEX (Transact-SQL).
Ändra stopporden i en stopplista
Lägg till eller släpp stoppord från en stopplista med Transact-SQL
Använd ALTER FULLTEXT STOPLIST (Transact-SQL).
Lägga till eller släppa stoppord från en stopplista med Management Studio
Expandera servern i Object Explorer.
Expandera Databaseroch expandera sedan databasen.
Expandera Storageoch välj sedan fulltext-stoppordlistor.
Högerklicka på den stopplista vars egenskaper du vill ändra och välj Egenskaper.
I dialogrutan Full-Text Stoplist Properties:
I listrutan Åtgärd väljer du någon av följande åtgärder: Lägg till stoppord, Ta bort stoppord, Ta bort alla stoppordeller Rensa stopplista.
Om textrutan Stopword är aktiverad för den valda åtgärden anger du ett enda stoppord. Det här stoppordet måste vara unikt; det vill säga, inte ännu i den här stopplistan för det språk som du väljer.
Om listrutan fulltextspråk är aktiverad för den valda åtgärden väljer du ett språk.
Välj OK.
Hantera stopplistor och deras användning
Visa alla stoppord i en stopplista
Använd sys.fulltext_stopwords (Transact-SQL).
Hämta information om alla stopplistor i den aktuella databasen
Använd sys.fulltext_stoplists (Transact-SQL) och sys.fulltext_stopwords (Transact-SQL).
Visa resultatet av en kombination av ordbrytare, synonymordlista och stopplista för tokenisering.
Använd sys.dm_fts_parser (Transact-SQL).
Ignorera ett felmeddelande om stoppord gör att en boolesk åtgärd i en fulltextfråga misslyckas
Använd serverkonfigurationsalternativet för att transformera brusorden.
Mer information om positionen för stoppord
Även om det ignorerar inkluderingen av stoppord, tar fulltextindexet hänsyn till deras position. Tänk till exempel på frasen "Instruktioner gäller för dessa Adventure Works Cycles-modeller". I följande tabell visas positionen för orden i frasen:
Ord | Position |
---|---|
Instruktioner | 1 |
är | 2 |
tillämplig | 3 |
till | 4 |
dessa | 5 |
Äventyr | 6 |
Fabrik | 7 |
Cykler | 8 |
modeller | 9 |
Stopporden "are", "to" och "these" som finns i positionerna 2, 4 och 5 lämnas kvar i fulltextindexet. Men deras positionsinformation bibehålls, vilket lämnar positionen för de andra orden i frasen opåverkad.
Uppgradera brusord från SQL Server 2005
SQL Server 2005 (9.x) brusord har ersatts av stoppord. När en databas uppgraderas från SQL Server 2005 (9.x) används inte längre brusordsfilerna. Brusordsfilerna lagras dock i mappen FTDATA\ FTNoiseThesaurusBak och du kan använda dem senare när du uppdaterar eller skapar motsvarande stopplistor. Information om hur du uppgraderar brusordsfiler till stopplistor finns i Upgrade Full-Text Search.