Definition

Was ist Apache Lucene?

| Autor / Redakteur: Stefan Luber / Nico Litzel

(Bild: © aga7ta - stock.adobe.com)

Bei Apache Lucene handelt es sich um ein Projekt der Apache Software Foundation, das eine frei verfügbare Programmbibliothek für die Volltextsuche bereitstellt. Apache Lucene arbeitet bei der Suche mit Indizes und kommt beispielsweise bei Wikipedia oder Twitter zum Einsatz.

Apache Lucene ist eine frei verfügbare Programmbibliothek, mit der sich Information auf Basis der Volltextsuche auffinden lassen. Das Projekt ist bei der Apache Software Foundation angesiedelt. Mithilfe von Lucene lassen sich beliebige Dokumente mit Textinhalten indizieren und anschließend durchsuchen. Weltweit kommt die Programmbibliothek in vielen Umgebungen zum Einsatz. Unter anderem verwenden Wikipedia und Twitter Lucene für die Bereitstellung von Suchfunktionen auf ihren Plattformen.

Zu den Vorzügen von Apache Lucene zählen Leistungsfähigkeit, Skalierbarkeit und Anpassbarkeit an verschiedene Umgebungen. Die Suche findet bei Apache Lucene unter Verwendung eines zuvor erstellten Index statt. Es handelt sich dabei um eine Liste von Begriffen mit den jeweiligen Verweisen auf die Dokumente, in denen sie vorkommen.

Die Geschichte von Apache Lucene

Ursprünglich wurde Lucene von Doug Cutting Ende der 1990er-Jahre programmiert. Der Name Lucene leitet sich vom zweiten Vornamen der Ehefrau von Doug Cutting ab. Die erste Version war als Download auf der Website von SourceForge verfügbar. Im Jahr 2005 wurde Lucene ein Top-Level-Projekt der Apache Software Foundation. Ursprünglich beinhaltete Lucene einige Sub-Projekte wie Lucene.NET, Mahout, Tika und Nutch, die heute eigene Top-Level-Projekte sind. 2010 wurde der Apache Solr Such-Server als Sub-Projekt in Lucene integriert.

Die wichtigsten Funktionen von Apache Lucene

Die Lucene-Programmbibliothek mit ihren Unterprojekten bietet einen riesigen Funktionsumfang für die Volltextsuche. Sie stellt leistungsfähige, effiziente, schnell und exakt arbeitende Suchalgorithmen zur Verfügung. Für jedes Dokument, das die Suchanfrage erfüllt, berechnet Lucene einen Score und liefert Ergebnisse sortiert nach Relevanz. Bei der Suche unterstützt Lucene verschiedenste Anfragearten wie die Wildcard-Suche, die Phrasen-Suche, die Fuzzy-Suche und viele weitere. Den Anwendern ist es möglich, die Suchergebnisse mit Filtern und Sortierungen weiter einzugrenzen. Auch die Indizierung der Dokumente wird von Lucene geleistet. Suchen und Indizieren können parallel stattfinden.

Der Index als zentrale Informationsstelle für die Suche

Die zentrale Rolle beim Suchen mit Lucene nimmt der Index ein. Lucene erlaubt es, beliebige Daten und Dokumente zu indizieren, aus denen sich Textinformationen extrahieren lassen. Zu diesen Daten oder Dokumenten zählen beispielsweise Textverarbeitungsdokumente, Dokumente einer Tabellenkalkulationssoftware, HTML-Dokumente, PDF-Dateien und viele weitere mehr.

Im ersten Schritt erfolgt die Indizierung der Daten. Ziel hierbei ist es, Informationen für eine schnelle Suche im Textformat bereitzustellen. Es kommen Parser oder Daten-Konverter zum Einsatz. Der Index von Lucene ist mit einem Buch-Index vergleichbar, der zu wichtigen Begriffen und Themen die betreffenden Seitenzahlen des Buches liefert. Der Index von Lucene kann als Sammlung von Dateien auf einem Datenspeicher oder im Arbeitsspeicher vorliegen. Nachdem die vorhandenen Dokumente indiziert sind, kann die Suche mit Lucene erfolgen. Sämtliche Suchanfragen richten sich dabei immer an den Index und nicht an die Ursprungsdokumente. Das Volumen des Index ist wesentlich kleiner als das der Ursprungsdokumente.

Grundidee hinter dem Index ist, dass nicht die Gesamtheit an Texten langwierig durchsucht werden muss, sondern die Suche in einer Liste der suchbaren Begriffe (Index) stattfindet. Ein Treffer im Index liefert die Position des Suchbegriffs im verknüpften Dokument. Nachdem die passenden Dokumente zu einer Suchanfrage im Index gefunden sind, erfolgt eine Sortierung der Ergebnisse nach Relevanz. Hierfür kann Lucene verschiedene Rankingalgorithmen verwenden. Ein einfacher Algorithmus sortiert die gefundenen Dokumente beispielsweise nach der Häufigkeit des Vorkommens eines Suchbegriffs.

Wichtige Bestandteile des Lucene-Projekts

Das Apache-Lucene-Projekt besteht aus verschiedenen Bestandteilen. Eine zentrale Komponente ist der Lucene Core. Er ist für die Indizierung, die Suche und das Hervorheben von Suchtreffern zuständig. Es handelt sich beim Lucene Core um eine Programmbibliothek, die in der Programmiersprache Java geschrieben ist. Mit Lucene.Net steht eine Anpassung von Lucene an die .NET-Plattform und Übersetzung in die Programmiersprache C# zur Verfügung. Mit Lucy sind Sprachanbindungen dynamischer Programmiersprachen wie Perl möglich. PyLucene stellt eine Python-Portierung des Lucene Cores dar. Bei Solr handelt es sich um ein Servlet von Lucene. Solr steht als Abkürzung für Search on Lucene and Resin und bietet APIs für XML, HTTP, JSON, Python und Ruby on Rails. Die Kommunikation von Solr erfolgt mit HTTP POST und HTTP GET.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

MongoDB 4.2 und weitere Neuheiten vorgestellt

Datenbank, Entwicklungsplattform und mehr

MongoDB 4.2 und weitere Neuheiten vorgestellt

Der Datenbankspezialist MongoDB hat Version 4.2 seiner gleichnamigen Plattform veröffentlicht. Zudem stellte das Unternehmen neue Produkte vor und gab seine Pläne für die Entwicklungsplattform Realm bekannt. lesen

Datenbasis für das IoT-Zeitalter

Crate.io

Datenbasis für das IoT-Zeitalter

IT-Spezialisten haben über Jahrzehnte SQL-Know-how aufgebaut, doch das IoT-Zeitalter erfordert die massenweise Verarbeitung von Echtzeit-Datenstreams, die von Sensoren erzeugt werden. Crate.io vereinigt beide Welten. lesen

Neo4j geht in die Cloud

Graphdatenbank

Neo4j geht in die Cloud

Auf einer Roadshow-Veranstaltung in Berlin hat Neo4j, Hersteller einer verbreiteten Graphdatenbank, Ausblick auf die Weiterentwicklung seiner Datenbankplattform gewährt. Drei deutsche Anwender, darunter DATEV und Daimler, stellten die Projekte vor, die sie mit Neo4j realisieren. lesen

Elasticsearch auf Enterprise-Level

IntraFind präsentiert den iFinder5 elastic

Elasticsearch auf Enterprise-Level

Elasticsearch ist ein Open-Source-Produkt, das in letzter Zeit viel Aufmerksamkeit findet. Die IntraFind Software AG hat es um einige Features erweitert, um es die Suchmaschine für Businesszwecke geeigneter zu machen. lesen

ASF veröffentlicht Lucene und Solr 6.4

Starkes Such-Team

ASF veröffentlicht Lucene und Solr 6.4

Die Entwickler des Lucene-Projekts haben Apache Lucene und Apache Solr auf die Version 6.4 aktualisiert. Lucene bringt vor allem eine verbesserte Textanalyse und Solr beherrscht jetzt den Learning-To-Rank-Algorithmus. lesen

SearchBlox jetzt als Cloud-Service verfügbar

Such- und Textanalyse-Lösung

SearchBlox jetzt als Cloud-Service verfügbar

SearchBlox Software, ein Anbieter von Such- und Textanalyse-Lösungen für Unternehmen auf der Grundlage von Apache Lucene, hat bekannt gegeben, dass sein Such- und Analyseprodukt jetzt als Cloud-Service zur Verfügung steht. lesen

„Das Hadoop-Ökosystem wird weiter wachsen“

Interview mit dem Hadoop-Schöpfer D. Cutting

„Das Hadoop-Ökosystem wird weiter wachsen“

Hadoop, das fast schon synonym für Big Data genannte Framework zum Verarbeiten großer Datenmangen, feiert in diesem Jahr seinen zehnten Geburtstag. BigData-Insider blickt gemeinsam mit dem Hadoop-Erfinder Doug Cutting auf die vergangenen zehn Jahre zurück und befragt ihn nach seiner Einschätzung zur Zukunft von Big Data und Hadoop. lesen

Was eine Enterprise Search können sollte

Enterprise Search, Teil 2

Was eine Enterprise Search können sollte

Welche Faktoren zeichnen eine gute Enterprise Search-Lösung aus? Sie muss in der Lage sein, Unternehmenswebsites vollständig zu durchsuchen – einschließlich interner, nicht öffentlicher Dokumente - unter Berücksichtigung der Zugriffsrechte. Das geht nicht ohne die passende Architektur. lesen

MapR 5.0 erweitert Hadoop für Echtzeit-Anwendungen

MapR-Distribution Version 5 kommt im Juli

MapR 5.0 erweitert Hadoop für Echtzeit-Anwendungen

Die Hadoop-Distribution von MapR bietet in der im Juli erscheinenden Version 5.0 Echtzeit-Funktionen und neue Sicherheitsfeatures. Neu hinzugekommen ist darüber hinaus eine Datenauswertung als Self Service. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45123640 / Definitionen)