Suchengine für ein XML basiertes CMS

Autoren:
Steffen Schluff
Orientation in Objects GmbH
Kristian Köhler
Orientation in Objects GmbH
Steffen Schluff
Steffen Schluff
Kristian Köhler
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

Suchergebnisse mit Lucene
Suchergebnisse mit Lucene

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/)

Zum Geschaeftsbreich Competence Center
XML basiertes CMS
Weitere Informationen zum Thema finden Sie in unserem Online Artikel zu CMS mit XML.