Fulltext_context

SQL

function Fulltext_context(IN doc BLOB, IN format CHAR(10), IN mode INT, IN position INT, IN margin INT, IN decoration CHAR(50)); returns CLOB;

Parametry:

doc dokument nebo odkaz na dokument
format formßt dokumentu (TXT, TEXT nebo PLAIN pro Φist² text, RTF, DOC nebo HTML pro ostatnφ definovanΘ)
mode zp∙sob p°edßnφ dokumentu
position pozice 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

Popis:

Funkce vrßtφ kontext (text okolo) v²skytu frßze vyhledanΘ pomocφ predikßtu Fulltext.

Prohledßvan² dokument lze 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;

1 - dokument je v souboru, jeho₧ jmΘno je v parametru doc;

2 - dokument je OLE objekt (embedded nebo linked) umφst∞n² v parametru doc.

Pomocφ format lze zvolit, mß-li se indexovat Φist² text (parametr TXT, TEXT nebo PLAIN) nebo jin² formßt - 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.

Pozice frßze v dokumentu je dßna systΘmovou prom∞nnou @@FULLTEXT_POSITION, kterß je nastavena p°i ka₧dΘm vyhodnocenφ predikßtu Fultext vracejφcφm TRUE.

Parametrem margin stanovφte, kolik slov p°ed a za nalezenou frßzφ se vrßtφ (spolu s frßzφ a znaky zadan²mi v decoration) jako v²sledek funkce.

Pomocφ decoration lze zv²raznit hledanou frßzi v kontextu. ╪et∞zcov² parametr musφ mφt nßsledujφcφ tvar znaky_p°ed%znaky_po, kde % znaΦφ pozici hledanΘ frßze. Bude-li v²sledek funkce nap°. p°edßn browseru, lze s v²hodou pou₧φt tohoto zv²razn∞nφ: "<B>%</B>"

Hodnota funkce

Funkce vracφ kontext v²skytu frßze 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("",id,"Databßze")

TotΘ₧ 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("",id,"Databßze")
DO
  SET pom = Fulltext_context(radek.doc,"TXT",0,radek.pos,5,">>%<<");
  CALL log_write(pom);
END FOR;

Viz