|
|
Line 1: |
Line 1: |
− | {{TOCright}}
| + | Has been moved to: http://blog.kr8.de/wiki-perfectsearch/ |
− | == Meine Situation und die Anforderungen ==
| |
− | Nachdem mir der Linux-Server mit [[HtDig|ht://dig]] nicht mehr zur Verfügung steht, habe ich nach einer Site-[[SuchMaschinen|Suchmaschine]] gesucht, die auf den mir zur Verfügung stehenden Plattformen lauffähig ist (und die ich auch mit wenig Aufwand zum Laufen bekomme).
| |
− | | |
− | == Die Lösung: Perlfect Search ==
| |
− | Fündig geworden bin ich bei meinem neuen WebProvider-Provider www.westhost.com. Der bietet seinen Kunden [http://www.perlfect.com/freescripts/search/ Perlfect Search] von Giorgos Zervas und Daniel Naber an. Das ist eine reine [[Perl|Perl]]-Lösung, arbeitet also nicht wie [[HtDig|ht://dig]] mit C++ Programmen, die auf der Server-Plattform compiliert werden müsssen (Binaries).
| |
− | [http://www.heise.de/ix/artikel/2000/11/225/ Siehe auch: IX 11/2000].
| |
− | | |
− | Wer sich für Perlfect Search (aktuelle Version 3.31b) entscheidet, kann folgende Vorteile nutzen:
| |
− | * einfache Installation;
| |
− | * sinnvolles Ranking, also nach Relevanz sortierte Treffer;
| |
− | * ‘+’ und ‘-’-Operatoren wie bei Altavista;
| |
− | * die Ergebnisseite ist leicht anzupassen;
| |
− | * OpenSourceSoftware (GPL)
| |
− | * Indexing of dynamical web-content (via http protocol)
| |
− | * Indexing of PDF since version 3.20 (requires PdftoText)
| |
− | * Indexing of MicrosoftWord (requires [[Antiword|Antiword]])
| |
− | | |
− | == Installation auf lokalem Notebook ==
| |
− | * Definitive Software Library ID: '''PerlfectSearch'''
| |
− | * Name: Perlfect Search
| |
− | * Version: 3.31b
| |
− | * Hersteller/Bezugsquelle: http://www.perlfect.com
| |
− | * Installations-Ordner: E:\var\www\www.kr8.de\cgi-bin\perlfect
| |
− | * Konfigurations-Dateien: /perlfect/search/conf.pl
| |
− | * Systemvoraussetzungen:
| |
− | ** [[WebServer]] mit CGI (z.B. [[Apache]])
| |
− | ** [[Perl]] 5.004 oder höher
| |
− | ** [[Perl]] Modul DB_File 1.72 (ppm / install DB_File / quit )
| |
− | ** diverse Perl-Module
| |
− | ** PdftoText zum Indexieren von PDF-Dokumenten
| |
− | ** [[Antiword]] zum Indexieren von [[MicrosoftWord]]-Dokumenten
| |
− | | |
− | == Anwendungshinweise ==
| |
− | http://www.perlfect.com/freescripts/search/faq.shtml
| |
− | | |
− | === (1) Erstellen des Index ===
| |
− | Im Ordner /perlfect/search: perl indexer.pl
| |
− | | |
− | === (2) Aufruf der Suchfunktion ===
| |
− | Suchen in der lokalen Website '''krachtweb.kr8.de''' <form method="get" action="http://krachtweb.kr8.de/cgi-bin/perlfect/search/search.pl">
| |
− | <input type="hidden" name="p" value="1">
| |
− | <input type="hidden" name="lang" value="en">
| |
− | <input type="hidden" name="include" value="">
| |
− | <input type="hidden" name="exclude" value="">
| |
− | <input type="hidden" name="penalty" value="0">
| |
− | <input type="hidden" name="mode" value="all">
| |
− | <input type="text" name="q"><input type="submit" value="Search">
| |
− | </form>
| |
− | | |
− | == Perlfect Search Installation 3.31b ==
| |
− | Mein WebProvider-Provider Westhost verwendet <a href="http://www.westhost.com/vps.html">Virtual Private Server (VPS) Technologie</a>, womit man noch viel mehr machen könnte. Aber dies ist erst einmal ein erster ganz einfacher Schritt nach dem Motto "Keep It Simple and Stupid".
| |
− | | |
− | Zum Testen der ganzen Geschichte auf meinem lokalen Computer musste ich eine aktuelle Version von [[Perl|Perl]] installieren (Active Perl 5.6.1) und das Perl Package DB_File 1.806 (www.cpan.org) zur Unterstützung von Berkeley DB.
| |
− | | |
− | Zuerst zur Installation: Obwohl das README das Installationsskript anpreist, ist die Einrichtung selbst ohne Skript so einfach, dass man sie am besten gleich von Hand ausführt.
| |
− | * Im Verzeichnis '''/var/www/cgi-bin''' entpackt man das Archiv.
| |
− | * Nun sind in der Datei conf.pl die ersten fünf Optionen anzupassen, alle anderen Werte dienen der Feineinstellung und können zunächst unverändert bleiben.
| |
− | * Bei der manuellen Installation muss man im Installationsverzeichnis ein Verzeichnis data anlegen, das die Index-Dateien aufnimmt.
| |
− | * Alle Perl-Dateien ausser search.pl sollten Rechte bekommen, die eine Ausführung als CGI nicht gestatten. Alternativ kann man sie in ein vom Webserver nicht benutztes Verzeichnis kopieren.
| |
− | * Der Aufruf '''./indexer.pl''' im Verzeichnis '''/var/www/cgi-bin/search''' generiert den Index.
| |
− | * Jetzt bleibt nur noch, die Datei search_ form.html, eventuell mit einem angepassten action-Wert in das Wurzelverzeichnis des HTTP-Daemons zu kopieren, und man kann mit dem Testen der Suchmaschine beginnen.
| |
− | | |
− | == Perlfect Search zum Testen ==
| |
− | Suchen in der Website '''www.kr8.de'''
| |
− | <form method="get" action="http://www.kr8.de/cgi-bin/search/search.pl">
| |
− | <input type="hidden" name="p" value="1">
| |
− | <input type="hidden" name="lang" value="en">
| |
− | <input type="hidden" name="include" value="">
| |
− | <input type="hidden" name="exclude" value="">
| |
− | <input type="hidden" name="penalty" value="0">
| |
− | <input type="hidden" name="mode" value="all">
| |
− | <input type="text" name="q"><input type="submit" value="Search">
| |
− | </form>
| |
− | | |
− | == Indexing of Dynamic Web Content ==
| |
− | Perlfect Search kann im Prinzip nicht nur statischen HTML-Content, sondern auch dynamischen Content indizieren.
| |
− | Beim Indizieren durch Perlfect Search liest das Indizierer-Modul indexer.pl ...
| |
− | Allerdings sind mir zwei Probleme aufgefallen:
| |
− | * ...not below... URLs ohne Hostnahmen, z.B. http:/repository, werden nicht erkannt.
| |
− | * Bei Eintragen in den Index wird die URL am "?" abgeschnitten. Aus "http://host/phpwiki/index.php?page=seite1" wird "http://host/phpwiki/index.php". So wird die schönste Fundstellenliste dann doch völlig unbrauchbar...
| |
− | | |
− | == Indexing PDF-Documents with Perlfect Search ==
| |
− | Seit der Version 3.20 gibt es die Option, [[PDF|PDF]]-Dokumente zu indizieren.
| |
− | Dazu muss in ''<b>conf.pl</b>'' der Parameter $EXT_FILTER gesetzt werden.
| |
− | Benötigt wird das Programm ''<b>pdftotext.exe</b>'', das in xPDF enthalten ist:
| |
− | [http://www.foolabs.com/xpdf/home.html Xpdf: A PDF Viewer for X].
| |
− | | |
− | Freundlicherweise sind auf der Website XPDF auch Win32-Binaries, sodass man sofort mit dem Indizieren von PDF-Dateien unter Windows loslegen kann. Einziges Problemchen: Falls man ausser PDF-Dateien noch andere Datei-Typen im Indizierungsberech herumzuliegen hat, sollten diese unbedingt über MIME-Types unterscheidbar sein. In meinem Fall musste ich in der Apache-Konfigurationsdatei ''<b>mime.types</b>'' folgendes ergänzen:
| |
− | * Application/vnd.visio vsd
| |
− | * image/x-emf emf
| |
− | * image/x-wmf wmf
| |
− | * image/x-swi swi
| |
− | nun wurden die in der PerlfectSearch-Konfigurationsdatei ''<b>conf.pl</b>'' selektierten PDF-Dateien (Application/PDF) bestens indiziert und die anderen nicht (der Versuch, die anderen auch zu indizieren brachte nämlich einen Absturz).
| |
− | | |
− | | |
− | Weitere Einzeiheiten: http://www.danielnaber.de/perlfectsearch/
| |
− | | |
− | | |
− | -- Main.DietrichKracht - 24 Jan 2004
| |