SuchMaschinen
Contents
Suchen und Finden
Meine Anforderungen
Die wichtigste Funktion meines Wissensmanagements (KnowledgeManagement) ist, Dinge wiederaufzufinden, die ich schon irgendwo (auf meinem PC oder in Papierablagen) habe. Darüberhinaus kommt es vor, dass ich Informationen aus fremden Quellen suche.
- Klassich ist der Fall eines Archivs, das in spezieller Form Dinge abspeichert, nach denen dann mit speziellen Suchfunktionen gesucht werden kann.
- Auch klassisch ist heutzutage das Suchen im Internet, wo im einfachsten Fall nach HTML-Seiten gesucht wird.
- Ich möchte möchte nun aber ganz schlicht und ergreifend in allen meinen Dateien auf meinem Notebook-Computer suchen. Für diesen Fall muss ein Index aufgebaut werden, der dann als Basis für Suchanfragen dient.
Aufgabenstellung: Website-Indexer / Desktop-Indexer
Für meine eingene Website möchte ich eine Suchmaschine anbieten, mer Besucher, zusätzlich zur ausgeklügelten Navigation auch über eine Volltextsuche über alle meine Webseiten möglichst direkt das finden kann, was er/sie sucht.
Die dafür eventuell erforderlichen technischen Komponenten auf der Server-Seite müssen sehr genau überlegt werden, denn ein billiger Web-Hosting-Provider bietet da nur sehr wenig.
Zur Zeit ist die eigene Website bei t-online gehostet. Als Provider mit PHP und MySQL steht auch free.fr zur Verfügung.
Siehe auch: http://www.searchtools.com
Lösungsarchitektur
Wichtig ist die Erkenntnis, das hier eine Schichtenarchitektur sinnvoll ist, wobei die untern dargestellten drei Schichten unterschiedliche systemtechnische Anforderungen aben und auch auch unterschiedlichen Systemplattformen laufen könnten.
Indexing - Harvesting
Man benötigt einen wirklich guten Indexer, der die Website wie ein Spider per HTTP-Protokoll durchläuft und dabei den auf der Oberfläche sichtbaren Text indiziert. Damit werden die Hyperlinks durchlaufen, dynamische inhalte (z.b. von PHP, ASP, JSP-Seiten) richtig behandelt, Zeichensätze (Umlaute) richtig beachtet und ggf. weitere Dokumenttypen (PDF, MicrosoftWord, PowerPoint,...) auch verarbeitet.
Das Ergbnis ist eine Dokumentliste und eine Wortliste.
Diese Komponente muss nicht notwendig als Web-Applikation laufen.
Schnelle Indexdatenbank
Die in der Stufe 1 (Indexing/Harvesting) gewonnenen "Rohdaten" werden jetzt veredelt und für den Zweck des schnellen Suchzugriffs optimiert aufbereitet.
Diese Komponente muss nicht notwendig als Web-Applikation laufen.
Schnelle Such-Oberfläche
Über ein HTML-Formular soll der Anwender seine Suchbegriffe eingeben. Das Suchergebniss soll dann als Fundstellenliste präsentiert werden.
Diese Komponente muss zwingend als Web-Applikation laufen.
Lösungsmöglichkeiten
- Fremdanbieter: Provider für solche Website-Suchmaschinen
- ht://Dig (SourceForge)
- mnogosearch
- siteIndexer (SourceForge)
- dtSearch
- PerlfectSearch
Software für Suchmaschinen
Man hat sich ja an sehr schöne Suchfunktionen aus dem Internet gewöhnt (früher Altavista, heute Google). Wenn man so etwas auf den lokalen PC übertragen könnte, wäre dann noch eine grosse Frage zusätzlich: Kann ich auch nach den Inhalten von Nicht-HTML-Dateien (z.B. MicrosoftWord, PowerPoint, PDF, E-Mails,...) suchen? Microsoft: Da gab es zum Web-Server IIS schon immer einen Index-Server. Für den lokalen PC gibt es auch eine in Windows integrierte Suchfunktion nach Inhalten, die auf einem File-Indexer beruht. Altavista: Da gab es mal ein Personal Altavista, mit dem man seine lokalen Daten durchsuchen konnte. dtSearch: Habe ich 2001 mal ausprobiert, war gut, aber ist auch teuer. ht://Dig: Eine sehr verbreitete klassische Index-/Such-Lösung. Einzelheiten unter HtDig. Perlfect Search 3.31: Eine Index-/Such-Lösung in Perl, die mein WebProvider-Provider Westhost unterstützt. Einzelheiten unter PerlfectSearch. SearchBlox: Eine in Java (J2EE) auf Basis von Jakarta Lucene (http://jakarta.apache.org/lucene/docs/index.html) realisierte Suchmaschine. Kann auch Word, PowerPoint, PDF und Excel. Leider kommerziell und gepfefferte Preise.... http://www.searchblox.com nutch: Eine in Java (J2EE) auf Basis von Jakarta Lucene realisierte einfache OpenSourceSoftware http://www.nutch.org ASPSeek: Linux-only. Free Software under GNU GPL. CGI-Fontend... (http://www.aspseek.org) mnoGoSearch: ... http://www.mnogosearch.org/win.html Namazu: .... sitesearch: ....Teil von.... Search Engine Builder Professional: Indexiert Dokumenttypen: xyz. Baut lokale Suchmaschine (ASP, PHP, JavaScript - ohne MySQL), die z.B. auch für CD-ROMs und DVDs geeignet ist. Search Maker Pro: Indexiert Dokumenttypen: PDF, DOC, RTF, PPT, XLS,.. Dabei werden Dokumentinhalt und Dokument-Property-Felder indexoert. Es wird eine lokale, in sich abgeschlossene Suchmaschine generiert (ASP, PHP, JavaScript), die z.B. auch für CD-ROMs und DVDs geeignet ist.
Update Oktober 2004: Desktop Search
blinkx: Produkt "blinks 0.4.34" http://www.blinkx.com Windows-Oberfläche, Dateien: ..., PDF, PPT, ZIP. Aber völlig instabil.
Anstelle eines Pre-View gibt es ein Pop-Up-Fenster mit einem Abstract.
Copernic: Produkt "Copernic Desktop Search 1.0" http://www.copernic.com/en/products/desktop-search Windows-Oberfläche, Dateien: TXT/RTF DOC XLS, PPT, Outlook-Mail, PDF, Music, Video, Pictures (ZIP?????)
Enfish: Produkt Enfish "Professional 6.1" http://www.enfish.com Windows-Oberfläche, Dateien: ...PDF, PPT, ZIP-Inhalte, kommerziell
HotBot: Produkt "HotBot Desktop" http://www.hotbot.com/tools/desktop
Google: Produkt "Google Desktop Search" http://desktop.google.com Dateien: TXT, DOC, XLS, PPT, Outlook-Mail (PDF nicht)
Filehand: Produkt "FilehandSearch 2.0" http://www.filehand.com Oberfläche: Windows, Dateien: TXT, DOC, XLS, PPT, PDF, MP3 (ZIP???)
SWISH-E: http://www.swish-e.org
Wilbur: Produkt "Wilbur 2.2" http://wilbur.redtree.com Oberfläche: Windows,...
X1 Technologies: Produkt "X1Search" http://www.x1.com Oberfläche: Windows, ....
X-Dot: Produkt "x-friend 0.2" http://www.x-friend.de Browser-Oberfläche, Java-basiert, verwendet Apache-Lucene, Dateien: TXT, DOC, XLS, PPT, PDF, IMAP E-Mail, MP3 ID3 Tag, Bilder, ZIP-Archive,...
Update Januar 2005: Desktop Search
Yahoo Desktop Search: Yahoo hat sich mit X1Search zusammen getan und eine bessere Oberfläche geschaffen. Überragender Pluspunkt bleibt die Viewer-Technologie von X1Search (ex Magellan) YahooDesktopSearch
Meine Bewertung
Produkt/Klasse | Pro | Contra | |
blinkx 0.4.34 | kann PDF, PPT und ZIP-Inhalte E-Mail: Outlook und Eudora kostenfrei |
läuft extrem instabil unter Win2000 kommerziell Thunderbird-E-Mail nicht unterstützt |
|
CopernicDesktopSearch 1.0 Desktop-Indexer |
Dokumenten-Preview On-the-fly indexing Kleiner Index (Beispiel: 662MB/34MB) |
E-Mail nur Outlook, nicht IMAP/POP3 Indiziert nicht den Inhalt von ZIP-Archiven!!! | |
dtSearch | Selbsttragende CD-Indizierung | teuer | |
Enfish 6.1 | kann PDF, PPT und ZIP-Inhalte E-Mail Outlook, Lotus Notes, AOL-Mail Schönes Pre-View |
E-Mail nicht Thunderbird kommerziell teuer | |
Filehand 2.0 | Windows-Oberfläche | Inhalte von ZIP-Archiven werden nicht indiziert | |
PDF nicht indiziert Nocht nicht fertig (Beta) |
|||
htDig Website-Indexer |
Bestandteil der Linux SuSE Edition | CGI-Binary muss kompiliert werden (Cygwin) | |
mnogoserach | |||
PerlfectSearch Website-Indexer |
Plattformen Linux/Windows durch Perl Internationalisierung durch i18n Website-Indexer |
PDF und Word durch Third-Party-Zusätze | |
Wilbur 2.2 Desktop-Indexer |
Inhalte von ZIP-Archiven werden indiziert CD-ROM Indexing QuickView support Freeware |
PDF und Thunderbird-Email wird indexiert Word und PowerPoint werden nicht indexiert. Kein Document Preview, aber Integration mit QuickView | |
X1Search 04.09 Desktop-Indexer |
Inhalte von ZIP-Archiven werden indiziert Dokument-Preview integriert Guter PowerPoint-Preview |
teuer: $99 Thunderbird-Email wird nicht indiziert Im PPT-Preview wird nicht mit Autoscroll auf "first occurance" positioniert | |
x-friend 0.2 Desktop-Indexer |
Plattformunabhägig durch Java Beliebiger WebBrowser Gut passend zur meiner Architektur (Java, WebBrowser, Apache Lucene, IMAP...) E-Mail IMAP Selbsttragende CD-Indizierung |
Inhalte von ZIP-Archiven werden nicht indiziert PowerPoint PPT wird nicht indiziert POP3-Email wird nicht indiziert Preview von der Ansichsgrösse nicht einstellbar Sehr schlichter PPT Preview |
Meine Lösungsauswahl
Für das russische mnogoserach spricht die Verwendung von PHP für die Search-Funktion.
Allerdings wird ein modifiziertes PHP benutzt, das man sich selbst durch Compilation erzeugen muss. Da die Lösung bei einfachen Providern laufen soll, scheidet diese Variante aus.
Für die Variante ht://Dig spricht:
- Die sehr grosse Verbreitung und damit eine Sicherheit für eine mittelfristig gesicherte Nutzung
- ht://Dig wird als Bestandteil der SuSE 8.0 Edition mit ausgeliefert (binary)
- Eine Compilation unter Win98 mit Cygwin war auf Anhieb erfolgreich.
Nachteil bei ht://Dig ist nachwievor, dass die Such-Oberfläche als CGI-Executable realisiert ist. Nicht jeder Web-Hosting-Provider lässt "freie CGIs" zu.
Die Auswahl fiel trotzdem auf HtDig, da die Ausgereiftheit und Mächtigkeit der Funktionen sowie die solide Community einfach überzeugen. Der Nachteil der CGI-Suchoberfläche wird im Sinnne der Architektur in Kauf genommen, mit der Idee, dafür im Laufe der Zeit einen Austausch vorzunehmen. Die Idee ist, eine PHP-Suchoberfläche entweder direkt auf die Berkely-DB2-Datenbank zu setzten, oder die DB2 auf MySQL zu konvertieren und dann eine PHP-Oberfläche darauf zu setzen.
Mehr Komfort: Enfish oder Copernic oder X1Search
Enfish 6.1 und Copernic bestechen durch sehr elegante Windows-Oberflächen. Allerdings ist die Funktionalität von Copernic nicht ausreichend und Enfish 6.1, das sehr mit seiner Lotus-Notes-Email-Indexierung lockt, ist viel zu teuer. Es bleibt X1Search, das zwar nicht so elegant aussieht, aber durch solide Funktionalität überzeugt.
Indizieren: Was soll, was soll nicht indiziert werden
Da das aufbauen und Aktualisieren eines solchen Index erstens Zeit kostet und zweitens Platz kostet, loht es sich zu überlegen, welche Datei-Typen man wirklich indizieren will und welche man nicht indizieren will.
Postiv (sollen indiziert werden)
Zur Konfiguration von Indexern (Teil einer Suchmaschinen-Archtektur) benötigt man MIME-Types und Parser für jeden MIME-Type:
Extension | MIME Type | Parser | |
.dbf | application/dbase application/x-dbase |
? | |
.doc | application/msword | catdoc aus: http://freshmeat.net/projects/catdoc/ | |
application/pdf | pdftotext.exe aus XPDF: http://www.foolabs.com/xpdf/ | ||
.rtf | application/rtf | ? | |
.xls | application/vnd.ms-excel | catdoc aus: http://freshmeat.net/projects/catdoc/ | |
.ppt | application/vnd.ms-powerpoint | ? | |
.html | text/html | OK | |
.htm | text/htm | OK | |
.svg | image/svg+xml | ? | |
.txt | text/plain | OK | |
.vsd | application/vnd.visio | Visio | |
.xml | text/xml application/XML |
? | |
.xsl | ? | ? | |
.zip | application/zip | ? |
Negativ (sollen nicht indiziert werden)
- *.bak
- *.dbs
- *.dl_
- *.do_
- *.dsk
- *.ex_
- *.e2_
- *.ndx
- *.ffx (löschen)
- *.ffo (löschen)
- *.ffl (löschen)
- *.ffa (löschen)
- *.pqi
- *.z
-- Main.DietrichKracht - 09 Jan 2004