HTML v příkladech

16

Vyhledávací stroj

 
Obsah

Rejstřík

Hledat

Dopis autorovi

...příkladem je vyhledávací mechanismus, který najdete v levém sloupci...

Vyhledávací stroj je králem navigačních mechanismů. Uživatel zadá slovo, které jej zajímá, a dostane menu stránek, na nichž se dotyčné slovo vyskytuje. Pravděpodobnost, že mezi nabídnutými stránkami najde svou vyvolenou, je velmi vysoká.

Studie chování uživatelů ukázaly, že někteří z nich jednoznačně dávají přednost použití vyhledávacích mechanismů před čímkoli jiným. Takový uživatel se ihned po vstupu na server shání po vyhledávači a jeho prostřednictvím pak hledá stránky, které jej zajímají. Obvyklá struktura odkazů jej nechává zcela chladným. Podle zmíněné studie se tímto způsobem chová až pětina uživatelů. Faktem je, že hledáte-li něco konkrétního na velkém serveru, je použití vyhledávacího mechanismu široko daleko nejrychlejší.

Jak pracují hledači

Existují dvě odrůdy vyhledávacích strojů - globální a lokální. Globální se snaží pokrýt celý Internet a jejich typickým představitelem je Alta Vista (http://altavista.digital.com/). Lokální naproti tomu prohledávají pouze jediný server nebo jeho část. Princip činnosti obou druhů je v podstatě totožný. Rozdíly mezi nimi jsou spíše praktické: nároky na diskový prostor, paměť a výpočetní výkon, aktuálnost dat.

Realizovat lokální vyhledávač je samozřejmě daleko jednodušší. Pravděpodobně vystačí s pár megabajty diskového prostoru a procesor také příliš nezatíží, protože těžko bude dostávat desítky dotazů za sekundu a jejich vyřízení také nepotrvá nijak dlouho. Velkou výhodou lokálních vyhledávačů je, že prohledávaných stránek není mnoho a jsou blízko. Díky tomu je možné aktualizovat data v prohledávači velmi často, zpravidla denně.

Nejvýznamnějším problémem, komplikujícím instalaci vyhledávacích strojů, je nutnost speciálního programového vybavení. Chcete-li prohledávat svůj server, budete potřebovat program, který tuto činnost zajistí. Zatím nelze říci, že by člověk o takové programy zakopával na každém rohu. Jednou z prvních vlaštovek je Web Parker Jiřího A. Randuse. Jak název napovídá, jedná se o příbuzného programu Nosey Parker, který již pár let prohledává domácí FTP archivy (viz http://www.vslib.cz/parker.html). Další text bude do značné míry zaměřen právě na instalaci a použití tohoto programu. Jelikož je k dispozici zdarma, mohl by přispět k většímu rozšíření vyhledávacích služeb u nás.

Základní uspořádání typického vyhledávacího mechanismu znázorňuje obrázek 1. Skládá se ze tří hlavních částí: programu pro sběr dat, databázového stroje a programu pro vyřizování uživatelských dotazů. Jádrem celého vyhledávače jsou data o obsahu prohledávaných stránek. Ta jsou obsluhována jakýmsi databázovým strojem, zajišťujícím jejich vytvoření, aktualizaci a odpovídajícím na dotazy. Může se jednat o skutečný databázový systém nebo pouze o části kódu, vestavěné do ostatních obslužných programů.

Obrázek 1: Struktura vyhledávacího mechanismu

K vytvoření databáze slouží program pro sběr dat. Zpravidla se mu předloží jako výchozí jistá stránka. Sběrač ji načte ze serveru a její obsah předá k uložení do databáze. Většinou se ukládají jednotlivá slova ze stránky, případně doplněná o priority (slovo v nadpisu má větší váhu než v obyčejném textu). Kromě toho však sběrač vyhledá na stránce všechny odkazy a s nimi postupně provede totéž. Zpravidla přitom dodržuje jisté hranice. Například bere v úvahu jen odkazy, neopouštějící daný server nebo jeho část.

Sběrač tedy postupně odešle do databáze kompletní obsah celé skupiny dokumentů, dosažitelných z výchozí stránky. Pro jejich získání přitom komunikuje s WWW serverem zcela obvyklým způsobem - protokolem HTTP. Tváří se vůči němu jako obyčejný WWW klient.

Když je databáze vytvořena, může nastat fáze dotazování. Její viditelnou částí je formulář, umožňující uživateli zadat hledaný text. Zpracovávající program pak na základě zadaného řetězce nechá vyhledat všechny výskyty dotyčného slova a uživateli odešle jejich seznam. Tento obslužný program se vyvolává obvyklým způsobem - mechanismem CGI.

Instalace Web Parkeru

Program Web Parker zajišťuje prohledávání serveru nebo jeho části. Je určen pro operační systémy typu Unix a jeho distribuční soubor najdete v adresáři
ftp://ftp.vslib.cz/pub/liane/software/JiriRandus/
pod názvem webparker.tgz. Instalace odpovídá zvyklostem Unixu - distribuci musíte rozbalit, upravit konfiguraci a přeložit. O rozbalení se postará příkaz
tar xzvf webparker.tgz
V aktuálním adresáři vznikne podadresář webparker a do něj budou uloženy všechny části programu. Nyní je třeba přizpůsobit konfiguraci vašim podmínkám. To zahrnuje dva zásahy do konfiguračních souborů. První se týká souboru Makefile, v němž musíte upravit obsah proměnné PATHTOINDEXES. Obsahuje jméno adresáře, ve kterém mají sídlit databázové soubory. Webparker má jeho název pevně uložen ve svých programech. Pokud tedy chcete na svém serveru nezávisle prohledávat několik částí, musíte program přeložit několikrát, pro každé hledání s jiným adresářem.

Doporučuji vytvořit si vyhrazený adresář, v němž bude umístěno vše, co s vyhledávací službou souvisí - řekněme /net/www/search. Jeho jméno uložte do proměnné PATHTOINDEXES.

Druhý konfigurační zásah se týká souboru globals.h. V něm je třeba změnit proměnné CACHEHOST a CACHEPORT. Webparker ke své činnosti potřebuje spolupracovat s vyrovnávacím serverem (WWW proxy cache). Do zmíněných proměnných uložte jeho jméno a port, na kterém sídlí. Autor hodlá v nejbližší době odstranit toto omezení. Až budete článek číst, Webparker se pravděpodobně obejde bez vyrovnávacího serveru.

Jakmile máte upraveny konfigurační soubory, nechte program přeložit příkazem

make
V aktuálním adresáři vznikne skupina proveditelných programů, tvořících jádro Webparkeru. Nyní nastává fáze rozsévání. Je třeba umístit soubory na správná místa.

Skrytou část, která realizuje sběr dat a vytvoření databáze, doporučuji umístit do společného adresáře s databází, tedy /net/www/search. Jedná se zhruba o deset programů, jejichž seznam je obsažen ve výpisu 1.

Výpis 1: Programy, sloužící k vytvoření databáze
btreeindex
dumpwords
filterext
gatherer
getHREFs
getWords
gettitle
indexWords
toAscii
triples
urlator
webparker

Jakmile máte programy umístěny, vytvořte databázi. Spusťte program webparker a jako parametr mu předejte startovní lokátor - například

webparker http://www.kdesi.cz/
Do databáze budou zařazeny všechny stránky, na které se lze dostat (byť zprostředkovaně) ze zadané stránky a začínají uvedeným URL. Lokátorů může být několik. Pokud například chcete prohledávat dokumentaci, která sídlí v adresářích /doc a /help, zadejte
webparker http://www.kdesi.cz/doc/ http://www.kdesi.cz/help/
Když program skončí svou práci, vytvoří v zadaném adresáři /net/www/search tři soubory, tvořící databázi. Aby se její stav udržoval v aktuální podobě, doporučuji spouštět webparker denně v nočních hodinách. K tomu poslouží věrný crontab.

Závěrečnou fází instalace je zpřístupnění vyhledávače uživatelům. O spolupráci s nimi se starají pouhé dva soubory z distribuce: stránka s formulářem pro zadání hledaného řetězce znaků a zpracovávající CGI program. Ukázkový formulář najdete v souboru search.html. Pravděpodobně si jej budete chtít upravit nebo vytvořit zcela nový. Není to nic komplikovaného. Data k vyhledání je třeba předat metodou GET ze vstupního pole, pojmenovaného search. Ukázku takového formuláře najdete na obrázku 2.

Obrázek 2: Formulář pro dotaz Webparkeru

Zpracovávající program, nazvaný search, musíte umístit do adresáře, z něhož váš WWW server spouští CGI programy. Implicitně se předpokládá, že k němu povede cesta /cgi-bin/search. Pokud je jiná, musíte odpovídajícím způsobem pozměnit atribut ACTION ve formuláři.

Vzhled výsledků, které program search generuje, nelze ovlivnit. Můžete je však "obalit" stránkou a přizpůsobit tak celkovou podobu výsledkových stránek vašim konvencím. K tomu slouží soubory webparker_header a webparker_footer. Program search do svého výstupu nejprve opíše obsah prvního z nich, za něj přidá výsledek hledání a nakonec opíše webparker_footer. V distribuci mají tyto dva soubory minimalistickou podobu - obsahují pouze standardní zahájení a ukončení HTML dokumentu.

Tím je Webparker instalován. Stačí jej vyzkoušet a dát k dispozici uživatelům. Je záhodno, aby odkaz na vyhledávání byl zařazen pokud možno na každou stránku vašeho serveru či prezentace. Pokud používáte navigační lištu, zcela jistě do ní vyhledávání přidejte.

Co umí Webparker

Webparker se lehce odlišuje od běžných vyhledávacích strojů. Ty bývají nejčastěji zaměřeny na vyhledávání slov. Naproti tomu Webparker hledá řetězce znaků. Zadáte-li například "kočko", najde "kočkovat" i "kočkodan" i "s kočkou".

Při zadávání hledaného výrazu můžete používat základní logické funkce. Slouží k tomu obvyklá anglická slova AND, OR a NOT. Vložíte-li mezi jednotlivé řetězce AND, hledá Webparker stránky, které současně obsahují oba dva řetězce. Například stránky o soužití koček se psy by se daly hledat pomocí

kočka AND pes
OR požaduje, aby na stránce byl alespoň jeden z řetězců. Pokud chováte psy a kočky a chcete se dozvědět něco zajímavého o těchto domácích zvířatech, pravděpodobně vám poslouží
kočka OR pes
NOT pak označuje negaci - vyhoví stránky, které neobsahují řetězec. Zpravidla se používá v kombinaci s dalšími logickými výrazy, protože samotná negace by představovala příliš slabou podmínku. Řekněme, že máte v lásce psy, ale kočky nemůžete ani cítit. V tom případě je pro vás určeno
pes NOT kočka
Webparker bohužel v současné době nedává přednost žádné z logických funkcí a vyhodnocuje je zleva doprava. Nejsou k dispozici ani závorky, které by umožňovaly toto chování změnit. Pokud se zajímáte o soužití psů s kočkami nebo se včelami, nemůžete svůj dotaz formulovat
pes AND kočka OR včela
Nejprve by se totiž provedlo AND a teprve na jeho výsledek by bylo uplatněno OR. Takže byste obdrželi stránky obsahující současně "pes" a "kočka" nebo řetězec "včela" (zde však mizí požadavek na výskyt psa). Kýženého chování dosáhnete změnou pořadí:
kočka OR včela AND pes
Zde se nejdříve vyhodnotí, zda stránka obsahuje kočku či včelu a pak se ještě přidá podmínka, že zároveň na ní musí být pes.

Zajímavým problémem pro domácí podmínky je, jak se vyhledávací stroj vyrovná s kódováním češtiny. Webparker řeší tuto úlohu odháčkováním. U zkoumaných dokumentů automaticky určuje jejich kódování a následně je převádí do standardního ASCII kódu, tedy odstraňuje diakritická znaménka. Vyhledávaný řetězec je proto třeba vždy zadávat bez háčků a čárek.


Článek byl otištěn v časopise
Softwarové noviny číslo 12/97

 
<--- --->