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.




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
Hewlett-Packard ApS
Udvikling og salg af software, hardware, konsulentydelser, outsourcing samt service og support.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
AI i det offentlige: Potentiale, erfaringer og krav

Hør erfaringerne med at anvende AI til at transformere og effektivisere processer i det offentlige – og med at sikre datakvalitet, governance og overholdelse af retningslinjer.

27. august 2025 | Læs mere


Computerworld Cloud & AI Festival 2025

Med den eksplosive udvikling indenfor cloud & AI er behovet for at følge med og vidensdeling større end nogensinde før. Glæd dig til to dage, hvor du kan netværke med over 2.400 it-professionelle, møde mere end 50 it-leverandører og høre indlæg fra +90 talere. Vi sætter fokus på emner som AI; infrastruktur, compliance, sikkerhed og løsninger for både private og offentlige organisationer.

17. september 2025 | Læs mere


IT og OT i harmoni: Sikring uden at gå på kompromis med effektiviteten

IT og OT smelter sammen – men med risiko for dyre fejl. Få metoder til sikker integration med ERP, kundesystemer og produktion. Tilmeld dig og få styr på forskellene og faldgruberne.

24. september 2025 | Læs mere