Kommentar
Å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
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.
För att använda ordbrytare och röster som tillhandahålls för alla språk som stöds av Databasmotor för 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 den 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
För att se listan över språk som stöds av Full-Text Search, använd följande Transact-SQL-sats. 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 tillhörande lingvistiska resurser också tillgängliga för fulltextindexering och frågeoperationer. Dessa resurser inkluderar stemmers, brusord (stoppord) och tesaurusfiler.
Om du vill se listan över registrerade ordbrytningskomponenter använder du följande instruktion.
EXECUTE sp_help_fulltext_system_components 'wordbreaker';
GO
Mer information finns i sp_help_fulltext_system_components.
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 Anpassa filter och ordbrytare.
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 LANGUAGE alternativet 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, ange 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. För mer information, se Välj ett språk när du skapar ett fulltextindex.
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;
Mer information finns i sys.fulltext_index_columns.
Felsöka ordsepareringsfel vid tidsgränsöverskridning
Ett ordbrytande timeoutfel kan inträffa i olika situationer. Information om dessa situationer och hur du svarar i varje situation finns i MSSQLSERVER_30053.
Information om det MSSQLSERVER_30053 felet
| 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. Till exempel är dess registerinställningar 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 buffer overflow-attack, och filterdaemonprocessen (
fdhost.exe), som hanterar ordbrytningstjänsterna, stängs ned.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ågebelastning körs på serverinstansen. Till exempel tog ordbrytaren lång tid att bearbeta fulltext-frågesträngen, eller så körs ett stort antal frågor på servern. 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. Mer information finns i Revert word breakers used by Full-Text Search to previous version (Återställ ordbrytare som används av Full-Text Search till föregående version). |
| Ordbrytaren fungerar inte för en specifik frågesträng. | Om ordbrytaren stöds av databasmotorn 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 databasmotorn 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 Database Engine kan inkludera uppdaterade ordbrytare med reviderade språkliga regler. Dessa uppdaterade ordbrytare kan bete sig annorlunda än ordbrytare i fulltextindex som importerats från tidigare versioner av Database Engine.
Detta är betydelsefullt om en fulltextkatalog importerades när en databas uppgraderades till den aktuella versionen av Database Engine. 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.