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.

Annonce

Event: Cyber Security Festival 2026

Sikkerhed | København

Mød Danmarks skrappeste it-sikkerhedseksperter og bliv klar til at planlægge og eksekvere en operationel og effektiv cybersikkerhedsstrategi, når vi åbner dørene for +1.700 it-professionelle. Du kan glæde dig til oplæg fra mere end 80 talere og møde mere end 50 leverandører over to dage.

18 & 19. november 2026 | Gratis deltagelse

Navnenyt fra it-Danmark

Genetec har pr. 1. august 2026 ansat Jan Julin som Channel Account Executive. Han skal især beskæftige sig med styrke samarbejdet med partnere og kunder i Danmark, Finland og Baltikum. Han kommer fra en stilling som Senior Business Development Manager hos Dahua Technology. Han har tidligere beskæftiget sig med videoovervågning, adgangskontrol, sikkerhedsteknologi, salg og forretningsudvikling. Nyt job

Jan Julin

Genetec

Norriq Danmark A/S har pr. 2. februar 2026 ansat Andreas Dyngberg Pedersen som Solution Architect. Han skal især beskæftige sig med at sætte de overordnede rammer for leverancerne med afsæt i best practice og skalerbarhed. Han kommer fra en stilling som Solution Architect hos Impact commerce. Han er uddannet Hos EUC Syd som Datatekniker og Programmering. Nyt job

Andreas Dyngberg Pedersen

Norriq Danmark A/S

Dansk AM Hub har pr. 1. november 2026 ansat Rasmus Pedersen som Chief Digital Officer. Rasmus skal især beskæftige sig med fokusudviddelse fra additive manufacturing til produktinnovation gennem AI, automatisering og andre nye teknologier. Rasmus er uddannet maskiningeniør med speciale i produktudvikling og med ph.d. i udvikling af modulære produktplatforme. Rasmus har tidligere beskæftiget sig med transformation og digitalisering i værdikæden fra produktudvikling til produktion. Nyt job

Rasmus Pedersen

Dansk AM Hub