Das Open Source Projekt Jakarta Lucene ist eine in Java geschriebene, leistungsstarke Text-Suchengine.
Lucene stellt Klassen und Funktionen zur Verfügung, um diese in beliebige Projekte integrieren zu können, in denen eine Ganztextsuche benötigt wird.
Lucene ist in 2 Kernbereiche aufgeteilt: Eine Komponente erzeugt aus Dokumenten einen Index und eine andere durchsucht diesen Index mit einer Query Engine.
Lucene Index
Dokumente werden mit Hilfe eines IndexWriter in den Index aufgenommen. Dokumente enthalten mehrere sog. Key-Value Paare, die zur Suche herangezogen werden. Ein Key Value setzt sich zusammen aus einem Bezeichner und einem Term. Dieser Term ist gleichbedeutend mit einem Wort. Bevor das Wort zu einem Term gebildet wird, bedarf es noch einiger Behandlung:
Punktuation wird entfernt Wortstammbildung Stoppwörter (der, die, das, ein, da,...) werden entfernt Umlaute und Akzente werden entfernt
Durch Angabe von eigenen Stoppwörtern kann man die Indexierung dieser Wörter verhindern.
Lucene Suche
Nachdem die Dokumente in den Index aufgenommen wurden, können Suchanfragen mittels dieses Indexes bearbeitet werden. Dazu wird zuerst ein sogenannter IndexSearcher für den Index erstellt. Diesem wird ein vom QueryParser erzeugter Query übergeben und daraus Hits generiert. Die Reihenfolge der vorkommenden Dokumente in den Resultaten wird anhand der Häufigkeit des Suchbegriffs im Dokument erzeugt.
Gibt es mehrere Suchbegriffe, werden die Suchbegriffe höher gewichtet, die in weniger Dokumenten vorkommen.
Lucene kann neben logischen Operatoren (Booleschen Operatoren) auch Phrasen oder sogenannte Boost Faktoren (damit lässt sich die Signifikanz eines gefundenen Wertes erhöhen) verarbeiten.
PANSOFT - Ihr Lucene Experte
Unsere Erfahrungen mit Lucene Consulting rund um Lucene Projektrealisierung unter Verwendung von Lucene Integration von Lucene in Ihre bestehende Systemlandschaft