JAXenter.de

Das Portal für Java, Architektur, Cloud & Agile
X

Schon abgestimmt im Quickvote? Docker versus Rocket - wer hat Recht?

Desktop-Suchmaschine mit Lucene

Wer suchet, der findet

Fabian Theis

Das Suchmaschinen-Framework Lucene bietet ein mächtiges API zur Volltextindexierung und Suche, das in puncto Vielfalt leicht mit kommerziellen Mitbewerbern mithalten kann. In unserem Beitrag in der letzten Java Magazin-Ausgabe beschäftigte sich Manfred Hardt mit der aktuellen Version des Apache Lucene. In dem vorliegenden Artikel wird nun der Einsatz von Lucene in der Praxis anhand einer ganz konkreten Beispielanwendung betrachtet.

Desktop-Suchmaschinen sollen der Kassenschlager im Jahr 2005 werden - haben nicht, aufgeschreckt und initiiert durch Googles Desktop-Search-Betaversion, alle namhaften Suchmaschinenhersteller eine solche als freie Beta bereits verfügbar (Microsoft und seit neuestem auch Yahoo) oder zumindest angekündigt (AOL). Die Festplatten werden immer größer, der Benutzer setzt in immer umfangreicherem Maße den Computer ein und es entstehen ganz schlicht immer mehr Dateien. Da ist es nicht verwunderlich, dass sich der unermüdliche Websurfer auch am heimischen PC die wegweisende Ordnung einer Suchmaschine wünscht. Vor kurzem hörte ich von einem User, der sich darüber beschwerte, dass er binnen zwei Sekunden dank Google die Webwelt überblicken kann, doch am eigenen Computer Stunden mit der Suche nach einer Datei verbringt. Das muss nicht sein, dachten sich die oben genannten Suchmaschinenhersteller (und schon deutlich früher so manche kleinere Firma - aber offensichtlich ohne den Marketingerfolg von Google). Jetzt können wir also mithilfe von Google & Co. Ordnung in unsere Dateienbäume bringen. Doch die Desktop-Suchmaschinen sind meistens noch in der Betaphase und lassen wichtige Features vermissen. Und selbst bei reiferen Produkten wie der Copernic Desktop Search fehlt noch das eine oder andere Detail. Aber das muss nicht sein - schreiben Sie doch einfach selbst eine Suchmaschine! Auch wenn das so entstandene Produkt wohl nicht ganz mit den Profis mithalten kann, lehrreich ist die Arbeit daran allemal. Und auch nicht übermäßig anstrengend. Mit dem Lucene-Framework sind die Grundlagen schnell gelegt; gibt man dann noch einige weitere Open-Source-Zutaten wie Apache POI und PDF Box hinzu, so lassen sich damit schon recht ansehnliche Erfolge erzielen. Im Folgenden werde ich eine kurze Einführung in die Lucene-Programmierung anhand eines solchen Beispieles geben. Zusätzlich zu der hier besprochenen Textversion finden Sie auf der Heft-CD eine schönere Swing-Variante der Suchmaschine (Abb. 1). Obwohl dieser Artikel auch ohne Vorkenntnisse über Lucene lesbar und verständlich ist, sei auf die allgemeineren Lucene-Ressourcen verwiesen [1-4].



Abb. 4: Schematischer Aufbau der Suche im Lucene API

Lucene bietet ein mächtiges API zur Volltextindexierung und Suche, die in Puncto Vielfalt leicht mit kommerziellen Mitbewerbern mithalten kann. In diesem Artikel wurden die Grundzüge des Lucene API an einem einfachen Beispiel dargestellt. Man sieht, dass die Integration der Lucene-Suchtechnologie in eigene Projekte leicht möglich (im Gegensatz zu den unflexibleren Anwendungslösungen) sowie technisch einfach realisierbar ist. Die entwickelte Desktop Search Engine ist tatsächlich einsetzbar, wenngleich noch ausbaufähig. Dennoch haben wir den Grundstein gelegt. Und in der Tat lässt sich Lucene für Desktopsuchen einsetzen, wie von kommerziellen Anbietern wie beispielsweise Aduna mit ihrer visuellen Suchmaschine AutoFocus [7] vorgemacht. Dass Suchmaschinen tatsächlich ein spannendes Thema sind, zeigt nicht zuletzt das große Feedback, dass Kevin Burton in seinem Blog Ende Oktober 2004 erhielt [8]. Er hat eine Desktop Search Engine vorgeschlagen - Lucene-basiert.Dr. Fabian Theis (fabian.theis@instant-solutions.de) habilitiert sich gerade an der Universität Regensburg im Fach Biophysik. Daneben ist er als IT-Berater für webbasierte Technologien in seiner Firma Instant Solutions tätig. Neben verschiedenen Artikeln und Büchern hat er zusammen mit Manfred Hardt das im Software & Support-Verlag erschienene Buch Suchmaschinen entwickeln mit Apache Lucene verfasst.Links und Literatur[1] Manfred Hardt: Wo war denn noch gleich ...? Suchmaschinen entwickeln mit Java und Lucene, in Java Magazin 8.2002[2] Manfred Hardt, Fabian Theis: Suchmaschinen entwickeln mit Apache Lucene, Software & Support Verlag, 2004[3] Manfred Hardt: Auf ein Neues. Suchmaschinen entwickeln mit Java und Apache Lucene, in Java Magazin 2.2005[4] Lucene: jakarta.apache.org/lucene/[5] PDF Box: www.pdfbox.org[6] POI: jakarta.apache.org/poi/[7] Aduna AutoFocus: aduna.biz/products/autofocus/[8] Kevin Burtons Blog: www.peerfear.org/rss/permalink/2004/10/28/LotsOfInterestInLuceneDesktop/

 

Kommentare

Ihr Kommentar zum Thema

Als Gast kommentieren:

Gastkommentare werden nach redaktioneller Prüfung freigegeben (bitte Policy beachten).