OznaΦovßnφ a ulo₧enφ dokument∙ ve fulltextov²ch systΘmech

Dokumenty, s nimi₧ fulltextov² systΘm pracuje, jsou zaznamenßny v tabulce dokument∙. Ka₧dß tabulka dokument∙ obsahuje:

Pro generovßnφ unikßtnφch Φφsel nov²ch dokument∙ slou₧φ sekvence FTX_DOCIDid vytvo°enß p°i zalo₧enφ fulltextovΘho systΘmu. Typicky mß sloupec s Φφslem dokumentu definovanou implicitnφ hodnotu FTX_DOCIDid.nextval. Tato implicitnφ hodnota zajistφ, ₧e ka₧d² nov² zßznam v tabulce dokument∙ automatick² obdr₧φ Φφslo dokumentu.

V jednom fulltextovΘm systΘmu lze indexovat dokumenty z vφce r∙zn²ch tabulek dokument∙. P°itom je t°eba zajistit, ₧e Φφsla dokument∙ budou unikßtnφ p°es vÜechny takovΘ tabulky. Proto je v²hodnΘ vyu₧φvat pro generovßnφ Φφsel sekvenci. Lze vÜak mφsto nφ vyu₧φt i libovoln² jin² zp∙sob p°id∞lovßnφ unikßtnφch Φφsel.

Tabulku pro ulo₧enφ dokument∙ lze vytvo°it nap°φklad p°φkazem:

CREATE TABLE Txtab (cislo_doc INTEGER DEFAULT ftx_docid.nextval, tx LONG VARCHAR, PRIMARY KEY (cislo_doc))

Slova v dokumentech

Za slovo se pro indexovßnφ a vyhledßvßnφ dokument∙ pova₧uje maximßlnφ posloupnost pφsmen, kterΘ zaΦφnß pφsmenem, znakem @ nebo _ a obsahuje krom∞ stejn²ch znak∙ p°φpadn∞ jeÜt∞ Φφslice a pomlΦky. Tak nap°φklad MS-DOS je jedno slovo, zatφmco TCP/IP jsou dv∞ slova. Slovo je takΘ nap°φklad ABC_DE_@14-23X, ale nikoli 123X.

Ve slovech se nerozliÜuje velikost pφsmen, lze vÜak vyhledßvat slova s p°ihlΘdnutφm k velikosti pφsmen.

Pro ka₧d² jazyk existuje seznam slov, kterß se neindexujφ. Pro ΦeÜtinu je seznam zde.

Zaindexovßnφ dokumentu

Pro zaindexovßnφ slou₧φ funkce Fulltext_index_doc.

Pokud se dokument nachßzφ v souboru, pak je nutno volat funkci pro zaindexovßnφ na tom poΦφtaΦi, na n∞m₧ je soubor dostupn². Proto SQL procedura provßd∞nß na databßzovΘm serveru obvykle nem∙₧e zaindexovat dokument zachßzejφcφ se v souboru na klientskΘm poΦφtaΦi. Pro tento p°φpad existuje funkce Fulltext_index_doc takΘ v klientskΘm API:

Odstran∞nφ dokumentu

Pokud je dokument Φi jeho obsah zruÜen, pak je t°eba jej odstranit z indexu pomocφ funkce SQL Fulltext_remove_doc.

Funkci Fulltext_remove_doc nenφ t°eba volat po zm∞n∞ v dokumentu p°ed volßnφm funkce Fulltext_index_doc - star² obsah dokumentu je p°i novΘm indexovßnφ odstran∞n automaticky. Funkci lze volat nap°φklad v triggeru na tabulce obsahujφcφ dokumenty.

Viz