Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Word breakers a stemmers provádí lingvistické analýzy všech fulltextových indexovaných dat. Lingvistická analýza provede následující dvě věci:
Najít slovní rozhraní (dělení slov). oddělovač slov identifikuje jednotlivá slova určením, kde existují hranice slov na základě lexikálních pravidel jazyka. Každé slovo (označované také jako token ) se vloží do fulltextového indexu pomocí komprimované reprezentace, aby se zmenšila jeho velikost.
konjugované slovesa (stemming). stemmer generuje inflexní formy konkrétního slova na základě pravidel daného jazyka (například "running", "ran" a "runner" jsou různé formy slova "run").
Dělitelé slov a stemmingové algoritmy jsou specifické pro daný jazyk
Nástroje pro dělení slov a kmenování jsou specifické pro jazyk a pravidla pro jazykovou analýzu se liší pro různé jazyky. Funkce pro dělení slov pro konkrétní jazyk zpřesní výsledné termíny pro daný jazyk.
Chcete-li používat děliče slov a kmenové analyzátory poskytované pro všechny jazyky podporované databázovým strojem SQL Serveru, obvykle nemusíte nic dělat.
Kde je pro rodinu jazyků oddělovač slov, ale ne pro konkrétní podjazyk, se používá hlavní jazyk. Například francouzský oddělovač slov se používá ke zpracování textu, který je kanadská francouzština.
Pokud není pro určitý jazyk k dispozici žádný oddělovač slov, použije se neutrální oddělovač slov. S neutrálním oddělovačem slov jsou slova přerušena na neutrálních znamech, jako jsou mezery a interpunkční znaménka.
Získání seznamu podporovaných jazyků
Pro zobrazení seznamu jazyků podporovaných Full-Text Search použijte následující příkaz Transact-SQL. Přítomnost jazyka v tomto seznamu značí, že jsou pro daný jazyk zaregistrované rozdělovače slov.
SELECT *
FROM sys.fulltext_languages;
Získání seznamu registrovaných rozdělovačů slov
Aby funkce Full-Text Hledat mohla používat nástroje pro dělení slov pro jazyk, musí být zaregistrované. Pro registrované nástroje pro dělení slov jsou přidružené jazykové prostředky dostupné také pro operace fulltextového indexování a dotazování. Tyto zdroje zahrnují stemmery, šumová slova (stopwordy) a soubory tezaurů.
Pokud chcete zobrazit seznam registrovaných součástí nástroje pro dělení slov, použijte následující příkaz.
EXECUTE sp_help_fulltext_system_components 'wordbreaker';
GO
Další informace najdete v tématu sp_help_fulltext_system_components.
Pokud přidáte nebo odeberete oddělovač slov
Pokud přidáte, odeberete nebo změníte oddělovač slov, budete muset aktualizovat seznam identifikátorů národního prostředí Systému Microsoft Windows (LCID), které jsou podporovány pro indexování a dotazování fulltextu. Další informace naleznete v tématu Přizpůsobení filtrů a dělení slov.
Nastavte výchozí možnost jazyka pro celý text
Pro lokalizovanou verzi SQL Serveru nastaví instalační program SQL Serveru výchozí možnost fulltextového jazyka na jazyk serveru, pokud existuje odpovídající shoda. U nelokativované verze SQL Serveru je výchozí fulltextový jazyk možnost angličtina.
Při vytváření nebo změně fulltextového indexu můžete pro každý fulltext indexovaný sloupec zadat jiný jazyk. Pokud není pro sloupec zadán žádný jazyk, výchozí hodnota je hodnota možnosti konfigurace výchozí fulltextový jazyk.
Poznámka
Všechny sloupce uvedené v jedné klauzuli funkce fulltextového dotazu musí používat stejný jazyk, pokud LANGUAGE není v dotazu zadána možnost. Jazyk použitý pro sloupec s fulltextovým indexem, na který se dotazujeme, určuje jazykovou analýzu prováděnou na argumentech predikátů fulltextového dotazu (CONTAINS a FREETEXT) a funkcí (CONTAINSTABLE a FREETEXTTABLE).
Volba jazyka indexovaného sloupce
Když vytváříte plnotextový index, určete jazyk pro každý indexovaný sloupec. Pokud pro sloupec není zadaný jazyk, použije se výchozí jazyk systému. Jazyk sloupce určuje, který oddělovač slov a stemmer se používají k indexování daného sloupce. Také soubor tesaurus daného jazyka používá fulltextové dotazy ve sloupci.
Při výběru jazyka sloupců pro vytvoření fulltextového indexu je potřeba vzít v úvahu několik věcí. Tyto aspekty souvisejí s tím, jak se text tokenizuje a pak indexuje pomocí modulu Full-Text. Pro více informací viz Vyberte jazyk při vytváření indexu s plným textem.
Pokud chcete zobrazit jazyk dělení slov pro konkrétní sloupce, spusťte následující příkaz.
SELECT language_id AS 'LCID'
FROM sys.fulltext_index_columns;
Další informace najdete v sys.fulltext_index_columns.
Řešení problémů s chybami časového limitu při dělení slov
K chybě vypršení časového limitu při zpracování slov může dojít v různých situacích. Informace o těchto situacích a o tom, jak reagovat v každé situaci, najdete v tématu MSSQLSERVER_30053.
Informace o chybě MSSQLSERVER_30053
| Vlastnost | Hodnota |
|---|---|
| Název produktu | SQL Server |
| ID události | 30053 |
| Zdroj událostí | MSSQLSERVER |
| Komponenta | SQLEngine |
| Symbolický název | FTXT_QUERY_E_VYČASOVANÍ_ROZDĚLENÍ_SLOV |
| Text zprávy | Pro řetězec fulltextového dotazu vypršel časový limit pro dělení slov. K tomu může dojít v případě, že zpracování řetězce fulltextového dotazu trvalo dlouhou dobu nebo pokud na serveru běží velký počet dotazů. Zkuste dotaz spustit znovu pod nižší zátěží. |
Vysvětlení
K chybě vypršení časového limitu slova může dojít v následujících situacích:
Oddělovač slov pro dotazovací jazyk je nesprávně nakonfigurovaný. Například nastavení registru je nesprávné.
Dělič slov nefunkční při určitém řetězci dotazu.
Oddělovač slov vrací příliš mnoho dat pro konkrétní řetězec dotazu. Přebytečná data jsou považována za potenciální útok na přetížení bufferu a ukončí proces filtračního démona (
fdhost.exe), který hostuje služby pro rozbití slov.Konfigurace procesu démona filtru je nesprávná.
Nejběžnější problémy s konfigurací jsou vypršení platnosti hesla nebo zásady domény, které brání přihlášení účtu démona filtru.
Na instanci serveru běží velmi náročné úlohy dotazů. Například word breaker trvalo dlouho zpracovávat plnotextový dotazovací řetězec, nebo na serveru běží velké množství dotazů. To je nejméně pravděpodobná příčina.
Akce uživatele
Vyberte uživatelskou akci, která je vhodná pro pravděpodobnou příčinu vypršení časového limitu, následujícím způsobem:
| Pravděpodobná příčina | Akce uživatele |
|---|---|
| Oddělovač slov pro dotazovací jazyk je nesprávně nakonfigurovaný. | Pokud používáte nástroj pro dělení slov třetí strany, může být nesprávně zaregistrován v operačním systému. V tomto případě znovu zaregistrujte dělič slov. Další informace viz Vrácení děličů slov používaných fulltextovým vyhledáváním na předchozí verzi. |
| Dělič slov nefunkční při určitém řetězci dotazu. | Pokud je word breaker podporován databázovým strojem, kontaktujte zákaznický servis a podporu společnosti Microsoft. |
| Oddělovač slov vrací příliš mnoho dat pro konkrétní řetězec dotazu. | Pokud je nástroj „word breaker“ podporován modulem Database Engine, kontaktujte zákaznický servis a podporu společnosti Microsoft. |
| Konfigurace procesu démona filtru je nesprávná. | Ujistěte se, že používáte aktuální heslo a že zásady domény nebrání účtu démona filtru v přihlášení. |
| Na instanci serveru běží velmi náročné úlohy dotazů. | Zkuste dotaz spustit znovu pod nižší zátěží. |
Vysvětlení dopadu aktualizovaných rozdělovačů slov
Každá verze Database Engine může obsahovat aktualizované word breakery s upravenými jazykovými pravidly. Tyto aktualizované oddělovače slov se mohou chovat jinak než oddělovače slov v plnotextových indexech, které byly importovány z předchozích verzí databázového stroje.
To je významné, pokud byl katalog s plným textem importován při aktualizaci databáze na aktuální verzi Database Engine. Jeden nebo více jazyků používaných fulltextovými indexy v fulltextovém katalogu teď může být spojen s novými oddělovači slov. Další informace naleznete v tématu Upgrade Full-Text Vyhledávání.