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

    Forsvarsministeriets Materiel- og Indkøbsstyrelse

    Teamleder til AI, Modellering og Simulering ved Forsvarsministeriets Materiel- og Indkøbsstyrelse

    Københavnsområdet

    Forsvarsministeriets Materiel- og Indkøbsstyrelse

    Netværkstekniker til Forsvarets Cyberdivision i Hvidovre – Er det dig?

    Københavnsområdet

    Forsvarsministeriets Materiel- og Indkøbsstyrelse

    Ingeniør til Satellitkommunikation

    Københavnsområdet

    Computerworld Events

    Vi samler hvert år mere end 6.000 deltagere på mere end 70 events for it-professionelle.

    Ekspertindsigt – Lyt til førende specialister og virksomheder, der deler viden om den nyeste teknologi og de bedste løsninger.
    Netværk – Mød beslutningstagere, kolleger og samarbejdspartnere på tværs af brancher.
    Praktisk viden – Få konkrete cases, værktøjer og inspiration, som du kan tage direkte med hjem i organisationen.
    Aktuelle tendenser – Bliv opdateret på de vigtigste dagsordener inden for cloud, sikkerhed, data, AI og digital forretning.

    It-løsninger | Online

    Kod smartere med GitHub Copilot

    Få styr på GitHub Copilot og skriv bedre kode hurtigere. Se hvordan Copilot løser opgaver, sparrer på fejl og løfter komplekse workflows. Oplev live demo og lær hvordan du kommer i gang med licenser og opsætning.

    Sikkerhed | København

    Cyber Threats

    Få teknisk indsigt og konkrete løsninger til at modstå moderne cyberangreb. Lær af fejl, stop angreb i tide og byg systemer med ægte resiliens. Fokus på lavniveau-detektion, netværksovervågning og hurtig gendannelse. Deltag i Cyber Threats fra...

    It-løsninger | København V

    Platform X 2026: Forretning, teknologi og transformation

    Mød verdens stærkeste og mest effektive platforme der driver den digitale transformation samlet i København - og dyk ned i den nyeste teknologi.

    Se alle vores events inden for it

    Navnenyt fra it-Danmark

    Netip A/S har pr. 1. februar 2026 ansat Henrik Mejnhardt Nielsen som ny kollega til Product Sales Teamet i Herlev. Han kommer fra en stilling som Business Development Manager hos Arrow. Nyt job
    Comsystem A/S har pr. 15. april 2026 ansat Iver Jakobsen som Technical Key Account Manager. Han skal især beskæftige sig med teknisk løsningssalg. Iver Jakobsen har 25 års erfaring fra TelCo-branchen. Han kommer fra en stilling som Key Account Manager hos E.ON Drive ApS. Han har tidligere beskæftiget sig med rådgivning og løsningssalg. Nyt job

    Iver Jakobsen

    Comsystem A/S

    IFS Danmark A/S har pr. 2. marts 2026 ansat Marlene Gudman som HR Business Partner. Hun skal især beskæftige sig med HR i Danmark og Norden og lede udvalgte internationale HR-projekter. Hun kommer fra en stilling som Nordic Lead HR Business Partner hos Salesforce. Hun har tidligere beskæftiget sig med international HR med fokus på udvikling af og udfordringer i HR ud fra et forretningsperspektiv. Nyt job

    Marlene Gudman

    IFS Danmark A/S

    Renewtech ApS har pr. 1. marts 2026 ansat Emil Holme Fisker som Customer Service Specialist. Han skal især beskæftige sig med at levere høj kvalitets kundeservice og hjælpe Renewtechs kunder med at få de rette løsninger til deres behov. Han kommer fra en stilling som Key Account Manager hos Camro A/S. Han er uddannet som salgselev hos Camro A/S. Han har tidligere beskæftiget sig med at udvikle gode kunderelationer, opsøgende salg og udvikling af salgsaktiviteter. Nyt job

    Emil Holme Fisker

    Renewtech ApS