Parametry:
ft_label | oznaΦenφ fulltextovΘho systΘmu; |
docid | Φφslo dokumentu (unikßtnφ hodnota v rßmci fulltextovΘho systΘmu); |
filename | plnΘ jmΘno souboru obsahujφcφho dokument; |
format | formßt dokumentu (TXT, TEXT nebo PLAIN pro Φist² text, WPD, RTF, DOC, HTM); |
doc | dokument nebo odkaz na dokument podle hodnoty; |
mode | zp∙sob p°edßnφ dokumentu |
Od verze:
7.0
Popis:
Funkce ulo₧φ dokument specifikovan² parametry do fulltextovΘho systΘmu oznaΦenΘho parametrem ft_label.
Je-li funkce volßna v klienta, pak dokument musφ b²t ulo₧en v souboru, jeho₧ plnΘ jmΘno je p°edßno jako parametr filename. Je-li funkce volßna na serveru, pak lze dokument p°edat n∞koliker²m zp∙sobem, p°iΦem₧ zp∙sob p°edßnφ popisuje parametr mode takto:
0 - dokument je obsahem parametru doc (tj. v parametru doc je obsah sloupce (nebo v²raz) typu CHAR nebo CLOB );
1 - dokument je v souboru, jeho₧ jmΘno je v parametru doc (tj. v parametru doc je obsah sloupce typu CHAR, kter² obsahuje jen plnß jmΘna soubor∙);
2 - dokument je OLE objekt (embedded nebo linked) umφst∞n² v parametru doc (tj. v parametru doc je obsah sloupce typu BLOB).
Pomocφ format lze zvolit, mß-li se indexovat Φist² text (parametr TXT, TEXT nebo PLAIN) nebo jin² formßt (WPD, RTF, DOC, HTM) - v tomto p°φpad∞ se provßdφ dodateΦnß anal²za textu, je-li skuteΦn∞ dan² formßt a jakΘ verze (u DOC). Nepoda°φ-li se anal²za, funkce skonΦφ s chybou.
Pokud zp∙sob ulo₧enφ dokumentu je 1 nebo 2, pak mφsto jmΘna formßtu dokumentu lze uvΘst "BYSUFFIX
". Formßt se pak zvolφ automaticky podle p°φpony jmΘna souboru.
Pokud je zp∙sob ulo₧enφ dokumentu 1 (jmΘno souboru) a soubor se nenajde, skonΦφ funkce chybou.
Pokud fulltextov² systΘm ji₧ obsahuje informace o obsahu dokumentu oznaΦenΘho parametrem docid, jsou p°ed zaindexovßnφm p°edanΘho dokumentu vymazßny. Pokud indexujete vφce tabulek, v∞nujte pozornost unikßtnosti Φφsla dokumentu pro vÜechny tabulky (nap°. vyu₧itφm jednΘ sekvence)!
Hodnota funkce:
Funkce vracφ TRUE p°i ·sp∞chu, FALSE p°i chyb∞.
P°φklad:
P°edpoklßdejme, ₧e tabulka TXTAB obsahuje text ve sloupci TX a Φφslo tohoto dokumentu ve sloupci CISLO_DOC. Text je bu∩ prost² text nebo je ve formßtu RTF. Zaindexovßnφ lze pak provßd∞t v triggeru definovanΘm takto:
TRIGGER txupd AFTER UPDATE ON Txtab
REFERENCING NEW AS nove FOR EACH ROW
BEGIN
IF Substring(nove.tx FROM 1 FOR 5) = '{\rtf' THEN
CALL Fulltext_index_doc('', nove.cislo_doc, nove.tx, 'rtf', 0);
ELSE
CALL Fulltext_index_doc('', nove.cislo_doc, nove.tx, 'txt', 0);
END IF;
END
Tento trigger p°edpoklßdß, ₧e se Φφslo dokumentu p°i operaci UPDATE nem∞nφ.
P°φklad:
P°edpoklßdejme, ₧e tabulka MojeCD mß mj. primßrnφ klφΦ Id_CD, dßle sloupce Nazev a Interpret typu CHAR(250), sloupce Skladby a Poznamka typu CLOB. VÜechny tyto ·daje je t°eba zaindexovat (p°i vklßdßnφ novΘho CD a p°i editaci).
TRIGGER PoVlozeniCD AFTER INSERT ON MojeCD
REFERENCING NEW AS nove FOR EACH ROW
BEGIN
CALL Fulltext_index_doc('', nove.id_CD, nove.nazev||nove.interpret||nove.skladby||nove.poznamka, 'txt', 0);
END
TRIGGER PoEditaciCD AFTER UPDATE OF ANY nazev,interpret,skladby,poznamka ON MojeCD
REFERENCING NEW AS nove FOR EACH ROW
BEGIN
CALL Fulltext_index_doc('', nove.id_CD, nove.nazev||nove.interpret||nove.skladby||nove.poznamka, 'txt', 0);
END
TRIGGER PredVymazanim BEFORE DELETE ON MojeCD
REFERENCING OLD AS stare FOR EACH ROW
BEGIN
CALL Fulltext_remove_doc("", stare.id_CD);
END
Viz