Gratis søgemaskine til sitet

Htdig er en simpel open source søgemaskine til det mellemstore website eller intranet. Den er ikke alt for svær at installere eller opsætte, men der skal nørkles lidt med programmets tekstbaserede konfigurationsfiler og skabeloner.

Modent produkt

Htdig er en site-orienteret søgemaskine udviklet af San Diego State University. Den har en del år på bagen og bærer i øjeblikket versionsnummeret 3.1.6, så der er angiveligt tale om et stabilt, modent produkt. Htdig kan ikke bruges som webspider ligesom Google, AltaVista og så videre, men sigter mod mellemstore sites og intranet.

Htdig er udviklet under Linux, men kan benyttes under en række andre Unix'er, som Solaris, HP/UX, IRIX, de fleste BSD'er samt Mac OS X, og programmet kan endda køre under Windows NT med Cygwin-afviklingsmiljøet. Der findes binære versioner til en lang række systemer, og i nogle Linux-distributioner følger Htdig med.

Htdig har mange gode funktioner. Htdig indekserer dokumenter som robot, hvor den opfører sig som en browser, og på den måde kan den indeksere hvad som helst - også dynamisk genererede sider.

Udover HTML-sider kan Htdig også parse og indeksere PDF-filer og Word-dokumenter ved hjælp af andre open source-kodebiblioteker.

Brugeren kan foretage flere slags søgninger: Søgning med logiske (boolske) operatorer, og såkaldt "fuzzy" (fonetisk) søgning er endda også understøttet.

Der er ikke nogen smart webgrænseflade til at konfigurere programmet med, men Htdig byder i stedet på god gammeldags konfiguration med en tekstfil, som heldigvis har en ganske forståelig syntaks.

Htdig er et selvstændigt program, som opsættes til webserveren via CGI. Htdig kommer med sin egen database, så der er ikke noget at rigge til. Det er ikke lige til at vurdere størrelsen af den fremkomne database, skriver udviklerne bag Htdig, men nævner som eksempel, at deres eget site med 13.000 indekserede dokumenter giver en databasestørrelse på omkring 150 megabyte.

Installation
Vi startede med at springe over hvor gærdet var allerlavest, nemlig ved at benytte den version af Htdig, som følger med Red Hat 7.2.

Htdigs konfigurationsfil /etc/htdig.conf indeholder en mængde muligheder for at konfigurere Htdig. Alle konfigurationsmulighederne er gennemgået ganske udmærket i dokumentationen til Htdig, og de fleste af dem er let forståelige.

Indeksering

Som udgangspunkt er Htdig sat op til at indeksere websider med udgangspunkt i adressen http//localhost/ og videre derfra, hvilket altså indekserer alle de websider, som er tilgængelige via navigation fra websitets åbningsside. Direktivet ser sådan ud:

start_url: http://localhost

Der kan finpoleres yderligere ved at specificere, hvilke ting robotten skal indeksere, og den overholder også robot-specifikationerne (robots.txt). Det er samme syntaks, som benyttes gennem hele konfigurationsfilen, og det er ikke så slemt at gå til.

Når konfigurationsfilen er sat op på den ønskede facon, så skal robotten sættes i gang med at spise websiderne, og den indekserede kode skal parses og puttes ned i Htdigs database. Processen er opdelt i en række forskellige delprogrammer, men det hele kan afvikles med en enkelt kommando Rundig, som køres fra et terminalvindue.

Databasen skal selvfølgelig opdateres, efterhånden som sider bliver tilføjet og fjernet fra websitet, og det kan man automatisere med crontab. Se f.eks. Red Hats dokumentation.

Det tog knap et blink med øjnene at afvikle Rundig-kommandoen i vores tilfælde, hvor der ikke var meget andet at indeksere end Apache-manualen.

Dernæst skal Apache sættes op, så vi kan bruge vores søgemaskine. Som nævnt er Htdig delt op i en række mindre programmer, og den som udfører søgningerne i databasen og returnerer resultaterne til webserveren, hedder meget passende Htsearch. Htsearch kan også afvikles via et terminalvindue, hvilket er praktisk, hvis man har behov for at debugge.

Opsætning og tilretning

I Red Hat 7.2-installationen befandt Htsearch sig i /usr/bin/ sammen med de andre programmer, som indgår i Htdig. Vi skabte et link (henvisning eller genvej) til Htsearch ved blot at højreklikke og hive filen over i mappevinduet /var/ww/cgi-bin/ under skrivebordet Gnome - for det er så nemt.

I Apache-konfigurationen, som i Red Hat 7.2 er placeret i /etc/httpd/conf/, og den hedder jo httpd.conf, skal /var/wsw/cgi-bin/ så sættes op som cgi-mappe, og server-direktivet FollowSymLinks skal sættes, så Apache ved, at når brugeren kalder vores lænke i mappen /var/wsw/cgi-bin/ ved at indtaste adressen http://localhost/cgi-bin/htsearch, så skal Apache køre htsearch-programmet, som altså stadig ligger i /usr/bin. Det lyder måske lidt kringlet, men det er egentligt ganske simpelt.

Følgende linier tilføjes Apache-konfigurationsfilen

ScriptAlias /cgi-bin/ '/var/www/cgi-bin/'

<Directory '/var/www/cgi-bin'>
AllowOverride None
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>

Herefter skal man skrive en HTML-side med en søgeformular på, og det kan gøres på flere måder. Der følger et eksempel med i dokumentationen, og det kan man blot kopiere og indsætte i et HTML-dokument. I vores Red Hat 7.2-installation er der også et eksempel på søgesiden search.html i kataloget /usr/share/htdig/. Hvis cgi-bin-mappen ligger et andet sted en sædvanligt, skal man dog lige ændre ACTION-parameteren i FORM-mærket.

Det er altså ikke særligt svært at få Htdig på banen, og når man er kommet så langt, er der som tidligere nævnt et utal af konfigurationsmuligheder.

Resultat-siderne kan tilrettes ved hjælp af skabeloner. Skabelonerne kan opsættes i konfigurationsfilen eller indsættes som parametre i skjulte formular-felter, som det kan ses i dette eksempel fra en anvendelse af Htdig.

Hvert enkelt søgeresultat kan formateres med en lang række variabler, og der kan man tage udgangspunkt i de to filer long.html og short.html, som i Red Hat 7.2-installationen befinder sig i kataloget /usr/share/htdig/. Det kan se sådan ud:

<dl><dt><strong><a href='$&(URL)'>$&(TITLE)</a></strong>$(STARSLEFT)
</dt><dd>$(EXCERPT)<br>
<em><a href='$&(URL)'>$&(URL)</a></em>
<font size='-1'>$(MODIFIED), $(SIZE) bytes</font>
</dd></dl>

Derudover skal disse skabeloner opsættes med direktivet template_map i konfigurationsfilen.

En spændende funktion er muligheden for at indeksere Word, Excel, PowerPoint, PostScript og PDF-filer. Det gøres ved en kombination af open source-kodebiblioteker, som kan parse Word- og PDF-dokumenter, og et Perl-script, som virker i forlængelse af htsearch-programmet. Der er mere information om denne spændende mulighed i dokumentationens FAQ, punkt 4.8.

Læses lige nu

    Navnenyt fra it-Danmark

    Forte Advice har pr. 19. januar 2026 ansat Karoline Lotz Jonassen som Head of Business Design. Karoline skal især beskæftige sig med business design, og hvordan kunder strategisk innoverer eller arbejder med nye forretningsområder. Karoline kommer fra en stilling som Future Commerce Lead hos IMPACT Commerce. Nyt job

    Karoline Lotz Jonassen

    Forte Advice

    Alcadon ApS har pr. 1. januar 2026 ansat Per Claus Henriksen som Datacenter-specialist. Per skal især beskæftige sig med opbygning og udvikling af Alcadons datacenterforretning. Per har tidligere beskæftiget sig med forskellige facetter af datacenterbranchen. Både via PR-bureau og som ansat i datacentre. Nyt job

    Per Claus Henriksen

    Alcadon ApS

    Adeno K/S har pr. 2. februar 2026 ansat Casper Barner Kristensen som ServiceNow Expert. Han kommer fra en stilling som Senior Automation Architect. Nyt job
    Christian Pedersen,  emagine Consulting A/S, er pr. 1. februar 2026 udnævnt som Chief AI Officer. Han beskæftiger sig med opkvalificere emagines ansatte, udvikle interne AI-værktøjer og levere AI-projekter for kunderne. Som leder af et nye AI-team skal han også udvikle og lancere AI-produkter til markedet. Udnævnelse

    Christian Pedersen

    emagine Consulting A/S