Vorbilder seien hier nicht verschwiegen - das waren zum einen "Matt's Simple Search"
und "Intermediate Search", Version 1.1. Von der 2ten Variante habe ich große Teile
der deutschen Übersetzung der Suchtipps übernommen. Die waren einfach zu gut formuliert,
da konnte ich nicht widerstehen ;-)
Dennoch vermochte keines der von mir gefundenen Suchscripts (es waren etliche mehr) meine
Wünsche und Anforderungen zu erfüllen.
Da ich beruflich ebenfalls Perl Kenntnisse benötigte, ist dann im Laufe meines
privaten Perl - Selbststudiums dieses Script entstanden und vielleicht kann es ja irgendjemand
im WordWideWeb für seine eigene Homepage ebenfalls gebrauchen.
Voila hier ist's: eine schnelle kleine Volltext-Suchmaschine,
mit optionalem Wort-Index-File (gut genug für Sites mit ein paar hundert Seiten),
beinhaltet Unterstützung der deutschen Sonderzeichen äöüÄÖÜ und ß,
entwickelt unter Windoofs-98/NT mit "Active Perl" - Perl Version 5.005,
getestet unter Linux mit Apache - Perl Version 5.005.
Perlscript für Index - Erstellung und Volltext - Suche
sdata
fullindex.txt
enthält später das Volltext Index-File
sdata
godown.gif
<img src="images/godown.gif" width=14 height=10>
sdata
goupred.gif
<img src="images/goupred.gif" width=14 height=10>
sdata
liesmich.html
diese Seite liest Du gerade 8)
sdata
mysearch.html
Muster für ein Suchformular
sdata
names.txt
Muster für ein optionales Namensverzeichnis, siehe
Parmfile "nfile=" Definition
sdata
parmfile.txt
Parmfile zur Steuerung der Suchscript Optionen, beinhaltet eine
ausführliche Beschreibung der verschiedenen Steuerungs - Parameter
sdata
sadmin.html
Muster für die Suchmaschinen Verwaltung (Passwort Definition und Erstellung der
Volltext Indexdatei)
sdata
statslog.html
Muster für ein optionales WebMaster Audit File, siehe
Parmfile "sfile=" Definition
sdata
template.txt
Suchmaschinen Ausgabe-Template, das auf das gewünschte Design angepasst werden kann,
siehe Inline Beschreibung
Die Namen der Unterverzeichnisse cgi-bin und sdata müssen
eventuell auf die Gegebenheiten Deines Servers angepasst werden;
das sdata Verzeichnis sollte für
Besucher "versteckt", d.h. nicht sichtbar sein
oder mit Passwortschutz versehen werden.
Die relative Adresse des Basis-Verzeichnisses, ausgehend vom jeweiligen
cgi-bin Verzeichnis, muss mit "/" End-Delimiter angegeben werden.
(cgi-bin = das Verzeichnis, in dem das Script search.cgi steht)
d.
Zeile 15
$parmfile = 'sdata/parmfile_.txt';
relative Adresse des (oder der) ParmFiles - ausgehend von der
$basedir Definition
Das "_" (underscore-)Zeichen in der $parmfile
Definition wird bei der Script - Ausführung
gegebenenfalls durch einen OPT=xx Wert ersetzt.
Dies ermöglicht für die Suchmaschine die Verwendung mehrerer Parmfiles mit
unterschiedlichen Parametervorgaben.
Genügt ein Parmfile, kann die spätere
Verwendung des OPT Parameters entfallen (= Default).
Beispiele: bei einer Suchangabe mit OPT=D wird das Parmfile "sdata/parmfileD.txt"
verwendet, bei einer Suchangabe mit OPT=sonderbar wird das Parmfile
"sdata/parmfilesonderbar.txt" verwendet,
ohne OPT Angabe wird das Parmfile "sdata/parmfile.txt" verwendet.
Anpassung des Parmfiles (oder bei geplanter Verwendung des OPT Parameters mehrerer
(Punkt 3.d.)
an die gewünschten Gegebenheiten
"sdata/parmfile.txt"
- siehe Inline-Beschreibung.
nur falls im Parmfile der "nfile=" Parameter definiert wird
sdata
parmfile.txt
666
oder parmfile_.txt, wobei "_" für den jeweiligen
Suffix steht (Punkt 3.d.)
sdata
statslog.html
666
nur falls WebMaster Audit File gewünscht wird, siehe
Parmfile "sfile=" Parameter
sdata
template.txt
Aufruf der Administrations-Seite zum erstmaligen Erstellen der Volltext Indexdatei
"sdata/fullindex.txt",
zuvor muss die URL "http://www.deine_url/cgi-bin/search.cgi" im Dokument
"sadmin.html" geändert werden.
Im Browser das Dokument
"sadmin.html"
aufrufen, bei Verwendung mehrerer Parmfiles gegebenenfalls
einen OPTion - Wert eintragen, ein neues Password angeben und den "Update" Button anklicken.
Einfach mal die Suche ausprobieren.
Im Browser das Muster "mysearch.html" aufrufen (bei Verwendung mehrerer Parmfiles gegebenfalls
OPTion - Wert eintragen), Suchstring(s) eingeben und "Volltext - Suche" anklicken.
Zuvor muss die URL "http://www.deine_url/cgi-bin/search.cgi" im Dokument
"mysearch.html"
geändert werden.
Last not least:
Nach Änderungen/Ergänzungen in Deinen Seiten
a.
Eventuell die
"parmfile.txt"
Datei anpassen und in das sdata Verzeichnis
transferieren - normalerweise ist dies nicht notwendig,
b.
die Volltext Indexdatei neu erstellen
Im Browser das Dokument "sadmin.html" aufrufen,
bei Verwendung mehrerer Parmfiles gegebenenfalls
OPTion - Wert eintragen, das bei
Punkt 7
verwendete Password angeben und den
"Update" Button anklicken.
Allgemeines zur Ausführung
Folgende Parameter können sowohl direkt, als auch über <FORM>..</FORM>
übergeben werden:
SEARCH=term1 term2 ... termn
{ OPT=xx }
{ MODE=UPDATE }
{ PASSWORD=password }
{ PASSNEW=newpassword }
MODE, PASSWORD und PASSNEW werden nur bei Erstellung des Volltext Indexfiles
benötigt, OPT nur bei Verwendung verschiedener Parmfiles,
sonstige Steuerungsangaben stehen in der Datei
sdata/parmfile.txt.
Bei einem Script Aufruf ohne Parameter werden die
Suchtipps
angezeigt.
Beispiel für einen direkten Aufruf:
http://www.deine-url.de/cgi.bin/search.cgi?search=humor
Beispiele für den Aufruf mit Formular-Eingaben sind in den Dateien
Jeder Suchbegriff kann mit einer üblichen
Boole'schen Verknüpfung (not, and, oder or) begonnen werden.
Wenn Du nach Krötenpisse not Kohl suchst, wirst Du alle Dokumente finden, die das Wort
Krötenpisse enthalten, außer denen, die auch das Wort Kohl enthalten.
Wenn Du dagegen als Suchbegriff krötenpisse and kohl and affenblut eingibst, werden Dir
nur die Dateien angezeigt, die alle drei Begriffe enthalten.
Standard ist die Verknüpfung or,
wenn Du also krötenpisse kohl affenblut suchst, wirst Du alle Seiten finden, die mindestens
einen der drei Begriffe enthalten.
Anstelle von not und and kannst Du auch - und + verwenden;
das bedeutet karl +valentin -u2 entspricht karl and valentin not u2.
Großschreibung
Bei Suchbegriffen, die mindestens einen Großbuchstaben enthalten wird nach Groß- und
Kleinschreibung unterschieden, wenn alles in Kleinbuchstaben geschrieben wurde nicht. Das bedeutet,
das parIS tatsächlich nur Seiten anzeigt, die das Wort in exakt der Groß - und
Kleinschreibung enthalten, während bei paris sowohl Seiten mit
Paris, PARIS, als auch parIS gefunden werden.
Gruppieren
Wenn Du nach einer Gruppe von Wörtern suchen lassen willst, gib sie in Anführungszeichen an.
So wird bei dem Suchbegriff "Valentin Unsinn" eine Seite mit dem Titel
"Unsinn von Karl Valentin" nicht angezeigt, bei einem Suchbegriff ohne
Anführungszeichen hätte sie gezählt.
Wildcards
Das Suchprogramm sucht normalerweise nach ganzen Wörten nicht nach Teilen davon, eine Suche nach
rot erzeugt nur Treffer mit genau diesem Wort, nicht trotz,
rotes, oder trotzdem. Wenn Du stattdessen nach einem Teil eines Wortes suchen willst,
dann kannst Du Suchbegriffe mit Wildcard-Zeichen maskieren.
Folgende Wildcard Angaben sind möglich:
ein Stern * entspricht null oder mehreren beliebigen Zeichen (auch über Wortgrenzen hinweg),
ein Fragezeichen ? entspricht genau einem beliebigen Zeichen.
Der Suchbegriff rot* findet Wörter wie rot, rotes oder Rotte;
der Suchbegriff ?rot* findet Wörter wie Brotteig, trotz usw.
Annäherung
Bei Suchbegriffen, die einen Umlaut ä Ä ö Ö ü Ü
oder ein ß beinhalten, kann die Tilde ~ vorangestellt werden.
Eine Suche nach ~hässlich entspricht einer Suche nach hässlich,
haesslich und häßlich.
Diese Annäherungssuche ist bei allen zuvor beschriebenen Suchangaben möglich.
Beim Suchbegriff ~*eiß wird demzufolge nach den Zeichenfolgen eiß
und eiss gesucht.
Download
Das Suchscript mit Dokumentation kann
hier
runtergeladen werden (Zipfile 32KB).
Support
Support ... gibt es eigentlich nicht ...
aber ...
Anregungen?, Fragen??, Probleme ???, Danksagungen????