Parametry:
doc | dokument nebo odkaz na dokument |
format | formát dokumentu (TXT, TEXT nebo PLAIN pro čistý text, RTF, DOC nebo HTML apod. pro ostatní definované) nebo prázdný řetězec |
mode | způsob předání dokumentu |
position | pozice (slova) v dokumentu, kolem níž se hledá kontext |
margin | počet slov před a za position v kontextu |
decoration | znaky, kterými se "obalí" slovo v pozici "position" ve výsledném kontextu |
Od verze:
7.0d, ve verzi 9.5 zastaralá
Popis:
Funkci lze od verze 9.5 používat na textové dokumenty, pro binární dokumenty zpracované externími konvertory nemusí funkce pracovat správně. Pro verzi 9.5 existuje funkce obdobná - Fulltext_get_context
.
Funkce vrátí kontext (text okolo) výskytu (jednoho) slova vyhledaného pomocí predikátu Fulltext
.
Prohledávaný dokument lze předat dvojím způsobem, přičemž způsob předání popisuje parametr mode takto:
hodnota | popis |
0 | dokument je obsahem parametru doc (textově nebo binárně) |
1 | dokument je v souboru, jehož jméno je v parametru doc |
Pomocí format lze určit, v jakém formátu se předpokládají texty k indexování. Znáte-li formát předem (např při indexování CLOBů v tabulce), použijte zkratku pro daný formát (např. TXT), neznáte-li jej (např. při indexování obsahu souborů v adresáři), použijte prázdný řetězec - proběhne analýza počátku textu a pro známé formáty se použije odpovídající konvertor. Nepodaří-li se analýza, funkce skončí s chybou.
Pozice slova v dokumentu může být dána systémovou proměnnou @@FULLTEXT_POSITION
, která je nastavena při každém vyhodnocení predikátu Fultext
vracejícím TRUE. Při vyhledání víceslovné fráze bude pozice ukazovat na jedno ze slov.
Parametrem margin stanovíte, kolik slov před a za nalezeným slovem se vrátí (spolu se slovem a znaky zadanými v decoration) jako výsledek funkce.
Pomocí decoration lze zvýraznit hledané slovo v kontextu. Řetězcový parametr musí mít následující tvar znaky_před%znaky_po
, kde % značí pozici hledaného slova. Bude-li výsledek funkce např. předán browseru jako HTML, lze s výhodou použít tohoto zvýraznění: "<B>%</B>"
Hodnota funkce
Funkce vrací kontext výskytu slova délky 2*margin+1 slov.
Příklady:
Nalézt v dokumentech uložených v databázi slovo Databáze a vrátit kontexty jeho výskytu:
SELECT Fulltext_context(doc,"TXT",0,@@FULLTEXT_POSITION,5,">>%<<") FROM Doctab WHERE Fulltext(".ftx_test",id,"Databáze")
Totéž zadání - v proceduře pomocí průchodu kurzoru:
DECLARE pom CLOB; FOR radek AS ftcur INSENSITIVE CURSOR FOR SELECT id,doc,@@FULLTEXT_POSITION AS pos FROM Doctab WHERE Fulltext(".ftx_test",id,"Databáze") DO SET pom = Fulltext_context(radek.doc,"TXT",0,radek.pos,5,">>%<<"); CALL log_write(pom); END FOR;
Viz