Suchengine für ein XML basiertes CMS
Autoren: | Steffen Schluff Orientation in Objects GmbH Kristian Köhler Orientation in Objects GmbH | ![]() Steffen Schluff ![]() Kristian Köhler |
Datum: | September 2002 |
Abstract
Eine steigende Menge von Informationen stellt hohe Anforderungen an sogenante Content Management Systeme (CMS). Hierbei ist eine flexible Suchmöglichkeit für den Endnutzer unverzichtbar. Der vorliegende Artikel stellt kurz die Erweiterung der XML basierten Homepage der Orientation in Objects GmbH (OIO) vor. Diese wurde mittels der Lucene Searchengine des Jakarta Apache Projektes realisiert.
Motivation
Aus eigener Erfahrung und entsprechendem Kundenfeedback zeigte sich, daß mit der zunehmenden Menge an Themen und Inhalten auf unserer Webpräsenz das schnelle Finden von spezifischen Inhalten besonders in Unterkategorieren nicht den gewünchten Bedienkomfort aufwies. Vorgabe war eine einfache und schnelle Möglichkeit zur Freitextsuche zur Verfügung zu stellen, deren technische Umsetzung ohne großen Aufwand mit unserem Java, J2EE und XML Hintergrund realisierbar sein sollte.
Verwendete Technologien
Nachfolgend werden kurz die einzelnen Technologien beleuchtet, die bei der Realisierung der Suchfunktionalität verwendet wurden.
Lucene
Lucene ist eine Java basierte Text-Suchengine, die ihm Rahmen des Jakarta Projektes entwickelt wird. Sie zeichnet sich durch ihre intuitive Java Schnittstelle, die ausgefeilten Suchalgorithmen sowie ihre Performance aus. Lucene ist allerdings keine fertige Suchmaschine, die sofort in die eigene Anwendung bzw. Homepage integriert werden kann, sondern ein Such-Framework, daß mit geringem Aufwand in eigene Projekte integriert werden kann.
JSP, Servlet
Java Server Pages (JSP) und Servlets ermöglichen auf Serverseite mittels Java dynamische Inhalte anzubieten. Somit sind sie für den Einsatz mit der zuvor beschriebenen Java basierten Suchengine Lucene bestens geeignet.
JDOM
JDOM ist eine Java API für die Erzeugung, Verarbeitung und Ausgabe von XML Dateien. Sie zeichnet sich vor allem durch ihre unkomplizierte und für Java optimierte Schnittestelle aus.
Realisierung
Lucene beinhaltet als Standardfunktionalität eine Möglichkeit für HTML Dokumente einen Suchbegriff Index zur Volltextsuche zu erzeugen. In dem vorliegenden Anwendungsfall werden die im Intenet verfügbaren HTML Dokumente aus XML Quellen mittels XSLT erzeugt. Da diese XML Dateien bereits META Informationen enthalten und mittels Standardtechnologien leicht verarbeitbar sind, lag es nahe Lucene entsprechend zu erweitern. Mittels JDOM und den Lucene APIs wurde eine kleine Klassenbibliothek erstellt, mit deren Hilfe die Quell XML Dateien geparsed und indexiert werden, wobei der erzeugte Suchindex auf die entsprechenden HTML Ausgabedateien verweist.
Screenshot
Fazit
Zusammenfassend läßt sich sagen, daß die hier vorgestellte Lösung ein exemplarisches Beispiel für die Synergieeffekte aus Java, XML und OpenSource Software darstellt. Lucene als OpenSource Projekt lies sich in sehr kurzer Zeit in eine selbstentwickelte Anwendung integrieren, XML ermöglichte ein leichtes inhaltsorientiertes Verarbeiten von Information, wobei Java als gemeinsame Basistechnologie genutzt werden konnte.
Referenzen
Jakarta Lucene
(http://jakarta.apache.org/lucene)
Java Server Pages (JSP)
(http://http://java.sun.com/products/jsp/)
JDOM
(http://http://www.jdom.org/)