Difference between revisions of "PerlfectSearch"

From Dietrich Blog (Strato)
Jump to: navigation, search
(Installation auf lokalem Notebook)
(Replaced content with "Has been moved to: http://blog.kr8.de/wiki-perfectsearch/")
 
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
 

Latest revision as of 17:16, 11 May 2020

Has been moved to: http://blog.kr8.de/wiki-perfectsearch/