602SQL-Úplná dokumentace Index  

Fulltextový systém v 602SQL

Rozšířením 602SQL Serveru lze získat nástroje pro fulltextové indexování dokumentů a vyhledávání v těchto dokumentech. SQL server je schopen:

Zaindexovat a následně vyhledávat lze dokumenty reprezentované v databázových tabulkách dokumentů těmito způsoby:

Každému dokumentu tedy odpovídá nějaký sloupec v databázovém záznamu. Tento sloupec buď přímo obsahuje dokument nebo obsahuje odkaz na tento dokument. Fulltextové vyhledávání dokumentů spočívá ve vyhledávání záznamů v tabulkách dokumentů prostředky jazyka SQL.

Dokumenty mohou být v čistém textovém formátu nebo ve formátech HTML, XML, FO, ZFO (XSL-FO formuláře z 602XML) PDF, RTF, DOC (MS Word resp. OpenOffice.org), XLS (MS Excel resp. OpenOffice.org), PPT (MS PowerPoint resp. OpenOffice.org) a formáty OpenOffice.org verze 1 i 2 (SXW, SXC, ODT, ODS). Filtry pro externí formáty se přidávají postupně, informujte se, zda již existuje Vámi požadovaný.

Utility pro získání slov z binárních dokumentů (tzv. fulltextové konvertory) je třeba před prvním použitím zvolit a nastavit - podrobnosti na stránce Fulltextové konvertory. Parametry se nastavují buď na straně klienta nebo serveru, podle toho, která strana bude indexování provádět.

Tvarosloví

Slova se v dokumentech mohou vyskytovat v řadě tvarů odpovídajících různým pádům, číslům, osobám apod. Fulltextový systém může pracovat jedním ze dvou způsobů:

První způsob fungování fulltextového systému vyžaduje, aby byla instalována příslušná jazyková podpora (součástí standardní instalace je pouze podpora pro češtinu a slovenštinu). Rozlišování tvarů slov ve fulltextovém systému se volí při jeho vytváření a nelze je dodatečně změnit.

Fulltextové systémy

Pokud aplikace chce využívat fulltextové vyhledávání, musí v databázi založit fulltextový systém. V jedné databázi může být založeno i více fulltextových systémů. Každý fulltextový systém je označen identifikátorem. Na rozdíl od identifikátorů jiných objektů smí mít identifikátor fulltextového systému nejvýše 20 znaků.

Fulltextový systém je vždy vytvořen pro určitý jazyk.

Při odkazování na fulltextový systém (například v predikátu Fulltext) se používá řetězec znaků obsahující jméno některé aplikace v databázi, tečku a identifikátor fulltextového systému. Je-li jméno aplikace vynecháno, uvažuje se aplikace aktuální. Tečka před jménem fulltextového systému vynechána být nesmí.

Nový fulltextový systém se vytváří příkazem CREATE FULLTEXT, změny v definici se provádějí příkazem ALTER FULLTEXT a systém se ruší příkazem DROP FULLTEXT. Z klientského vývojového prostředí lze fulltextový systém vytvářet, editovat i mazat interaktivně pomocí tzv. Návrháře fulltextu.

Při vytvoření interního fulltextového systému vzniknou ve zvolené aplikaci tabulka slov FTX_WORDTABidft, tabulka referencí FTX_REFTABidft (a je-li zapnuto rozebírání archivů, také tabulka FTX_DOCPARTidft), sekvence FTX_DOCIDidft, kde idft je identifikátor fulltextového systému (jméno objektu typu Fulltext). Tabulka pro dokumenty nevznikne, autor aplikace tyto tabulky vytváří sám podle potřeby.

Při vytvoření fulltextového systému s externím uložením indexů (od verze 9.5.1) vznikne v aplikaci pouze tabulka FTX_DOCPARTidft (je-li zapnuto rozebírání archivů), sekvence FTX_DOCIDidft, kde idft je identifikátor fulltextového systému (jméno objektu typu Fulltext). Tabulky pro slova a reference nevzniknou, tyto údaje se ukládají do binárního souboru na disku pojmenovaného Jméno_aplikace.Jméno_ftx_systému.ftx. Soubor se vytvoří v adresáři shodném s adresářem, kde se nachází databázový soubor, pokud není vlastností serveru ExtFulltextDir určen adresář jiný.

Příklad

Fulltextový systém (interní) Korespondence umístěný v aplikaci Spisovna se skládá z objektu typu fulltext Korespondence, tabulek FTX_WORDTABKorespondence, FTX_REFTABKorespondence, sekvence FTX_DOCIDKorespondence a tabulek dokumentů. Při vyhledávání se používá predikát Fulltext('Spisovna.Korespondence', ...) nebo v rámci aplikace Spisovna predikát Fulltext('.Korespondence', ...)..

Rozdíly mezi interním a externím uložením ftx indexů

Interní uložení (indexy jsou uvnitř databázového souboru)

Externí uložení (indexy jsou mimo databázový soubor, jsou fyzicky odděleny od ostatních dat, lze je (samostatný soubor na disku) kdykoliv smazat a nechat přebudovat)

Rychlost zápisu do indexu je v obou případech srovnatelná.

Seznam subsekcí: