Anteckning
Å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
Ordbrytare och stamningsverktyg utför språklig analys på alla data som är fulltextindexerade. Språkanalys gör följande två saker:
Hitta ordgränser (ordbrytning). Den ordbrytaren identifierar enskilda ord genom att avgöra var ordgränser finns baserat på språkets lexikala regler. Varje ord (även kallat en token) infogas i fulltextindexet med hjälp av en komprimerad representation för att minska dess storlek.
Conjugate verb (härstamning). stemmer- genererar böjningsformer av ett specifikt ord baserat på reglerna för det språket (till exempel "springande", "sprang" och "löpare" är olika former av ordet "springa").
Ordbrytare och stemmers är språkspecifika
Ordbrytare och stemmers är språkspecifika, och reglerna för språkanalys skiljer sig åt för olika språk. Språkspecifika ordbrytare gör de resulterande termerna mer exakta för det språket.
Om du vill använda de ordbrytare och stemmers som erbjuds för alla språk som stöds av SQL Server behöver du vanligtvis inte vidta några åtgärder.
- Om det finns en ordbrytare för språkfamiljen, men inte för det specifika underspråket, används huvudspråket. Till exempel används den franska ordbrytaren för att hantera text som är fransk-kanadensisk.
- Om ingen ordbrytare är tillgänglig för ett visst språk används den neutrala ordbrytaren. Med den neutrala ordbrytaren bryts ord vid neutrala tecken som blanksteg och skiljetecken.
Hämta listan över språk som stöds
Om du vill se listan över språk som stöds av SQL Server Full-Text Search använder du följande Transact-SQL-instruktion. Förekomsten av ett språk i den här listan anger att ordbrytare är registrerade för språket.
SELECT * FROM sys.fulltext_languages
Hämta listan över registrerade ordbrytare
För att Full-Text Search ska kunna använda ordbrytarna för ett språk måste de vara registrerade. För registrerade ordbrytare blir associerade språkresurser – stemmers, brusord (stopwords) och synonymfiler – också tillgängliga för indexerings- och frågeåtgärder i fulltext.
Om du vill se listan över registrerade ordbrytningskomponenter använder du följande instruktion.
EXEC sp_help_fulltext_system_components 'wordbreaker';
GO
Ytterligare alternativ och mer information finns i sp_help_fulltext_system_components (Transact-SQL).
Om du lägger till eller tar bort en avgränsare
Om du lägger till, tar bort eller ändrar en ordbrytare måste du uppdatera listan över Microsoft Windows-språkidentifierare (LCID) som stöds för fulltextindexering och frågor. Mer information finns i Visa eller Ändra registrerade filter och orddelare.
Ange standardalternativet för fulltextspråk
För en lokaliserad version av SQL Server anger installationsprogrammet för SQL Server standardspråk för fulltext till serverns språk om en lämplig matchning finns. För en icke-lokaliserad version av SQL Server är standardalternativet för fulltextspråk engelska.
När du skapar eller ändrar ett fulltextindex kan du ange ett annat språk för varje fulltextindexerad kolumn. Om inget språk anges för en kolumn är standardvärdet för konfigurationsalternativet standardspråket för fulltext.
Not
Alla kolumner som anges i en frågefunktionssats i fulltext måste använda samma språk, såvida inte alternativet SPRÅK anges i frågan. Det språk som används för den fulltextindexerade kolumnen som efterfrågas avgör språkanalysen som utförs på argument i frågepredikaten i fulltext (CONTAINS och FREETEXT) och funktioner (CONTAINSTABLE och FREETEXTTABLE).
Välj språk för en indexerad kolumn
När du skapar ett fulltextindex rekommenderar vi att du anger ett språk för varje indexerad kolumn. Om ett språk inte har angetts för en kolumn används systemets standardspråk. Språket i en kolumn avgör vilken orddelare och stemmer som används för indexering av kolumnen. Dessutom används synonymordboksfilen för det språket av fulltextfrågor i kolumnen.
Det finns några saker att tänka på när du väljer kolumnspråket för att skapa ett fulltextindex. Dessa överväganden gäller hur texten tokeniseras och sedan indexeras av Full-Text Engine. Mer information finns i Välj ett språk när du skapar ett Full-Text Index.
Om du vill visa ordbrytningsspråket för specifika kolumner kör du följande instruktion.
SELECT language_id AS 'LCID' FROM sys.fulltext_index_columns;
Ytterligare alternativ och mer information finns i sys.fulltext_index_columns (Transact-SQL).
Felsöka tidsgränsfel för ordbrytning
Ett ordbrytande timeout-fel kan inträffa i en mängd olika situationer. För information om dessa situationer och hur du ska agera i varje situation, se MSSQLSERVER_30053.
Information om felet MSSQLSERVER_30053
Egenskap | Värde |
---|---|
Produktnamn | SQL Server |
Händelse-ID | 30053 |
Händelsekälla | MSSQLSERVER |
Komponent | SQLEngine |
Symboliskt namn | FTXT_QUERY_E_WORDBREAKINGTIMEOUT |
Meddelandetext | Tidsgränsen gick ut för ordbrytning av fulltextfrågesträngen. Detta kan inträffa om ordseparatorn tog lång tid att bearbeta frågesträngen i fulltext, eller om ett stort antal frågor körs på servern. Försök att köra frågan igen under en lättare belastning. |
Förklaring
Ett ordbrytande timeoutfel kan inträffa i följande situationer:
Ordbrytaren för frågespråket har konfigurerats felaktigt. Registerinställningarna är till exempel felaktiga.
Ordbrytaren fungerar inte för en specifik frågesträng.
Ordbrytaren returnerar för mycket data för en specifik frågesträng. Överskottsdata behandlas som en potentiell buffertöverskridningsattack och stänger av filterdaemonprocessen (fdhost.exe), som är värd för ordbrytande tjänster.
Filtrets daemonprocesskonfiguration är felaktig.
De vanligaste konfigurationsproblemen är lösenordets giltighetstid eller en domänprincip som förhindrar att filtrets daemonkonto loggas in.
En mycket tung frågearbetsbelastning körs på serverinstansen. Ordbrytaren tog till exempel lång tid att bearbeta frågesträngen i fulltext, eller så körs ett stort antal frågor på servern. Observera att detta är den minst sannolika orsaken.
Användaråtgärd
Välj den användaråtgärd som är lämplig för den troliga orsaken till tidsgränsen enligt följande:
Trolig orsak | Användaråtgärd |
---|---|
Ordbrytaren för frågespråket har konfigurerats felaktigt. | Om du använder en ordbrytare från tredje part kan den vara felaktigt registrerad i operativsystemet. I det här fallet registrerar du ordbrytaren igen. För mer information, se Återställ ordbrytarna som används av sökfunktionen till föregående version. |
Ordbrytaren fungerar inte för en specifik frågesträng. | Om ordbrytaren stöds av SQL Server kontaktar du Microsofts kundtjänst och support. |
Ordbrytaren returnerar för mycket data för en specifik frågesträng. | Om ordbrytaren stöds av SQL Server kontaktar du Microsofts kundtjänst och support. |
Filtrets daemonprocesskonfiguration är felaktig. | Kontrollera att du använder det aktuella lösenordet och att en domänprincip inte hindrar filtrets daemonkonto från att logga in. |
En mycket tung frågebelastning körs på serverinstansen. | Försök att köra frågan igen under en lättare belastning. |
Förstå effekten av uppdaterade ordbrytare
Varje version av SQL Server innehåller vanligtvis nya ordbrytare som har bättre språkregler och är mer exakta än tidigare ordbrytare. De nya ordbrytarna kan eventuellt bete sig något annorlunda än ordbrytarna i fulltextindex som har importerats från tidigare versioner av SQL Server.
Detta är viktigt om en fulltextkatalog importerades när en databas uppgraderades till den aktuella versionen av SQL Server. Ett eller flera språk som används av fulltextindexen i fulltextkatalogen kan nu associeras med nya ordbrytare. För mer information, se Upgrade Full-Text Search.
Se även
SKAPA FULLTEXTINDEX (Transact-SQL)
ÄNDRA FULLTEXTINDEX (Transact-SQL)
Konfigurera och hantera stoppord och stopplistor för Full-Text Search