Hlavní navigace

Sherlock Holmes pro fulltext na intranetu

24. 4. 2008 14:48 (aktualizováno) Martin Hassman

Vyhledávání na internetu dnes již není problém, můžete si vybrat z řady dobrých vyhledávačů. Na intranetu, kam roboti nemají přístup, to již problém může být, obzvláště pokud je intranet rozsáhlý.

Na VŠCHT Praha jsme napočítali okolo 30 tisíc stránek (resp. dokumentů, protože sem řadím např. i vystavené PDF) a ty si již nějaké vyhledávání opravdu zaslouží. V tomto článku nastíním, jaké jsme zvolili řešení. Pokud máte jiné zkušenost, podělte se s námi v komentářích.

Ještě na začátku bych rád upozornil, že tento článek je prvním ze série článků, kde představím některé projekty, na kterých jsem dělal v zaměstnání, jenž právě opouštím. A jelikož mé místo je zatím ještě volné, bude to trochu i článek náborový (detailní informace jsou připíchnuté na konci článku).

Sherlock Holmes

Pro řešení byl vybrán projekt z českých luhů a hájů Sherlock Holmes, jehož autory jsou Martin Mareš a Robert Špalek z MFF UK. Na Sherlocku Holmesovi je postavené i fulltextové vyhledávání Morfeo (netuším, nakolik si Centrum.cz Sherlocka upravilo).

Sherlock Holmes je kompletní řešení, obsahuje jak robota, který projde a zaindexuje web, tak nástroje pro vyhledávání v indexu. Je dostupné zdarma pod GPL (autoři nabízí i rozšířenou placenu verzi, my jsme se pro začátek pokusili vystačit s free variantou).

Zprovoznění robota na Linuxu nebylo obtížné, při postupování podle dokumentace kolegové rychle přiměli robota indexovat celý školní web. Index byl rychle hotový a zbývalo mu nasadit nějaké webové rozhraní (Sherlock v sobě jedno ukázkové má, ale pro naše účely nebylo vyhovující).

Webové rozhraní

A to byl úkol pro mě. Představu jsem měl celkem jasnou – pro začátek raději méně funkcí než více (uživatelé budou ne vždy zkušení, v širokém rozmezí cca 20–65 let, a když vznikne poptávka po něčem složitějším, můžeme přidávat) a pokud možno velmi podobné některému známému vyhledávači (pro účely intranetu nebudu vymýšlet znovu kolo).

Za známý vyhledávač byl zvolen Google, a tak celý layout i ovládání jsem pojal víceméně dle Googlu (pozn.: layoutem opravdu myslím pouze výsledný vzhled – Googlovským HTML kódem plným <font> značek jsem se opravdu inspirovat nemínil). Tam, kde Google má své nezapomenutelné logo, jsme s kolegy vytvořili naše „nezapomenutelné“ logo. Tam, kde Google má barvu modrou, my máme okrovou atd. Tak vznikl projekt Archeolog (odkaz je přístupný pouze z našeho intranetu).

Archeolog - fulltextový vyhledávač na VŠCHT Praha

Cílem těchto podobností bylo, aby pokud se na náš intranetový vyhledávač dostane třeba i pětašedesátiletý zaměstnanec školy, který má velmi malé zkušenosti s internetem, byl již napoprvé schopen najít, co potřebuje. Zda se to opravdu povedlo i u starších generací zatím ještě nepotvrdím, na průzkum se teprve chystám a jsem na něj docela zvědav.

Rozhraní vyhledávání na intranetech někdy bývá tím slabším místem (spousta zaškrtávátek, voleb, které když správně nenastavíte, nedostanete, co jste chtěli…). Autor často znovu vymýšlí kolo a někdy se mu to nepovede. Zatím jsem přesvědčen, že jsme zvolili tu lepší cestu.

ASP.NET

Webové rozhraní jsem vytvořil v C# ASP.NET. V zásadě lze říct, že 90% našich webových projektů je v ASP.NET. Když jsem na tohle místo nastoupil, tvořil jsem weby v PHP. Proto ASP.NET pro mne bylo zajímavou školou podívat se na věci ze zcela jiného úhlu (v některých ohledech velmi propracovaného a skvělého, nepopírám – i s řadou slabých míst).

Pro případné zájemce o místo mohu říct, že podobně to platí i pro vás. Pokud zatím nemáte s ASP.NET zkušenosti, ale jste na něj prostě zvědaví a rádi byste si ho vyzkoušeli na pár projektech, máte zde příležitost se ho naučit rychle a za pochodu.

Odlišnosti internetu a intranetu

A teď přicházím k nedokončenému místu projektu a to je optimalizace vyhledávače. Sherlock Holmes nabízí řadu voleb, kterými můžete bez zásahů do zdrojového kódu ladit pořadí výsledků vyhledávání. Výchozí konfigurace Sherlocka je vhodná spíš pro internet, ale pro intranet se myslím tolik nehodí.

Sherlock se snaží např. penalizovat stránky, které nemají vyplněn titulek. Na internetu to je nejspíš v pořádku, ale pokud máte vyhledávat na intranetu, který tvoří z části amatéři, jenž onen titulek ne vždy nastaví, je takové penále diskutabilní.

Po letmém průchodu konfigurací mám pocit, že se Sherlock snaží penalizovat stránky založené pouze za účelem SEO. Na intranetech tohle ovšem příliš nehrozí (nevím jak na vašem, ale na tom našem určitě ne). Zkrátka by se vyplatilo konfiguraci pro intranet poladit.

To může být práce na řadu týdnů možná i měsíců plnou pokusů a omylů než se podaří vyhledávání vyladit k dokonalosti. Rád bych to podstoupil (kdy máte příležitost si ladit takový vlastní minigoogle, že?), ale bohužel je to jeden z úkolů, ke kterému se již nedostanu. Ale může to být jeden z prvních úkolů pro vás, pokud byste chtěli u našeho výpočetního centra nastoupit.

Informace pro zájemce

A teď ještě pár informací pro potenciální zájemce. Jedná se o pracovní pozici programátora ve výpočetním centru VŠCHT Praha. Sídlili byste v Dejvicích v budově B.

Pokud náhodou chodíte okolo, tak byste seděli za (pokud vím jediným!) oknem v okolí, které má na sobě samolepku Firefoxe (je to zvýšené přízemí, ale pokud se pozorně podíváte nahoru, je z chodníku v Technické ulici viditelná). Firefox, kterého jsem před lety nalepil na okno, přežil kompletní rekonstrukci kanceláře spojenou s opalováním a lakováním oken a je stále jako nový i s nápisem Take back the web. Tak vám ho tam nechám. (Jestli ho ale sundáte, tak si vás najdu! 8-)

Pokud jste se rozhodli, pošlete svůj životopis vedoucímu výpočetního centra VŠCHT Stanislavu Böhmovi na e-mail Stanislav.Bohm (at) vscht.cz.

Pokud si jisti nejste a rádi byste víc informací, můžete buď počkat na další díly této série, kde budu psát o dalších projektech, jenž by vám připadli nebo se mi ozvěte na e-mail job (at) met.cz nebo na jabber hassmanm (at) njs.netlab.cz a můžeme to spolu probrat klidně i méně formální cestou.

Podotýkám, že upřednostňován je sice úvazek plný, ale není nutnou podmínkou.

Sdílet