602SQL-Úplná dokumentace Index  

Omezení velikosti indexovaných souborů

Omezení LIMITS

Hodnota LIMITS v SQL příkazu CREATE nebo ALTER FULLTEXT musí být ve tvaru:

    [ LIMITS 'pattern=size { , pattern=size }...' ]
přitom mezi jednotlivými částmi hodnoty (pattern, znak rovná se (=), size, znak čárka (,)) nesmí být žádné mezery. Celý parametr je vložen do apostrofů.

Pattern je vzorem, se kterým se budou porovnávat jména souborů, které mají být indexovány ve fulltextovém systému. Hodnota size je počet slov.V patternu se mohou vyskytovat speciální znaky % a _. Znak % v porovnávaném jménu souboru odpovídá libovolnému (i prázdnému) podřetězci a znak _ odpovídá právě jednomu libovolnému znaku. Tyto znaky lze v patternu escapovat znakem \, tj. \% a \_ a \\ v patternu odpovídá znakům % a _ a \ ve jménu souboru. Escapovat backslashem lze také znaky = (rovná se) a , (čárka), neboť tyto znaky mají v hodnotě LIMITS speciální význam.

Prázdný parametr (tj. LIMITS '') v ALTER FULLTEXT ruší dosavadní nastavení omezení. Pro další indexování se omezení neuplatní, dosavadní fulltextový systém ale není automaticky přebudován.

Jak se testuje

Každý soubor, který má být zaindexován ve fulltextovém systému, se testuje na to, zda vyhovuje některému vzoru v LIMITS. Testování probíhá v tom pořadí, v jakém jsou vzory napsány v hodnotě LIMITS. Pokud jméno souboru vyhovuje určitému vzoru, porovná se počet slov v souboru s velikostí, která je uvedena u daného vzoru v LIMITS. Pokud je počet slov menší nebo roven velikosti uvedené u vzoru, soubor bude zaindexován. Jinak zaindexován nebude. Pokud jméno souboru nevyhovuje tomuto vzoru, pokračuje se v testování na shodu s dalším vzorem (v tom pořadí, v jakém jsou vzory uvedeny v LIMITS). Pokud soubor nevyhovuje žádnému vzoru, bude zaindexován (tzn. pokud je LIMITS prázdné, budou zaindexovány všechny soubory).

Jak se testuje jméno souboru na shodu se vzorem

Vzor i testované jméno souboru se rozdělí na jméno souboru a příponu - dělícím místem je poslední znak tečka (.) ve vzoru, resp. ve jménu souboru. Poté se odděleně porovnají jméno souboru bez přípony a přípona. Jméno souboru vyhovuje vzoru, pokud vyhovuje jméno souboru bez přípony i přípona. Při porovnávání se používá stejný algoritmus jako v SQL operátoru LIKE.

Pokud vzor neobsahuje příponu (tj. pokud ve vzoru není znak tečka, např. vzor "ab%cd"), pak přípona může být libovolná.

Pokud vzor obsahuje jako poslední znak tečku (např. "abc%d."), pak přípona souboru musí být prázdná (tzn. tečka může být pouze na konci jména souboru).

Viz