CLI-Tool
apache/lucenenet avatar
apache/lucenenet

Apache Lucene.NET: Beta 4.8.0-beta00018, Install-Package Lucene.Net -Pre und der Build mit ./build

Dieses Projekt rundet „Apache Lucene.NET is an open-source full-text search library written in C#, ported from the Apache Lucene project.“ zu einer praxistauglichen Open-Source-Lösung zusammen, mit wiederverwendbarer Tooling- und Integrationsunterstützung für reale Anwendungsfälle.

2.414 Sterne658 ForksC#Apache-2.0

Auf einen Blick

Was ist das?
Lucene.NET ist die C#-Portierung von Apache Lucene. Wir prüfen README, Paketliste, Build und die Versionslücke zwischen 3.0.3 und 4.8.0.
Für wen ist es gedacht?
Lucene.NET trägt für Anwendungen, die Volltextsuche mit sprachbezogenen Analyzern, Trefferhervorhebung oder Facetten brauchen und auf .NET 8.0 oder .NET 6.0 laufen. Wer nur eine einfache Wortsuche in einer Anwendung benötigt, ist mit SQLite und FTS5 schlanker bedient.
Darf ich es kommerziell nutzen?
Ja. Apache-2.0 ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 6 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich C#, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Lucene.NET als C#-Portierung: was im README zur Aufgabe steht

Das Repository apache/lucenenet enthält Apache Lucene.NET, eine in C# geschriebene Volltextsuchbibliothek. Das README stellt sie als Portierung des Java-Projekts Apache Lucene vor. Damit ist die Aufgabenverteilung klar: Verfahren und Indexformat stammen aus dem Java-Projekt, die Umsetzung liegt in der Hand des .NET-Teams.

Zum Leistungsumfang nennt das README Indizierung und Suche, dazu Rechtschreibprüfung, Hervorhebung von Treffern sowie erweiterte Analyse- und Zerlegungsverfahren. Letztere sind der Teil, der über eine einfache Wortsuche hinausgeht, weil hier festgelegt wird, wie Text in durchsuchbare Einheiten zerfällt und wie Wortformen auf einen Stamm zurückgeführt werden.

Eine Aussage des README verdient besondere Beachtung: Version 4.8 läuft überall dort, wo .NET läuft, aufgezählt werden Windows, Unix, macOS, Android und iOS. Die Metadaten nennen C# als Sprache sowie die Apache-Lizenz 2.0. Zum Abrufzeitpunkt standen rund 2.400 Sterne und 657 Forks im Raum, Standardbranch ist master.

3.0.3 unter .NET Framework 4.0, 4.8.0 unter .NET 8.0 und .NET 6.0

Die Liste der unterstützten Plattformen ist zweigeteilt, und diese Teilung erklärt die Lage des Projekts besser als jede Umschreibung. Für Lucene.NET 3.0.3 werden .NET Framework 4.0 und .NET Framework 3.5 genannt. Für 4.8.0 sind es .NET 8.0, .NET 6.0, .NET Standard 2.1, .NET Standard 2.0 und .NET Framework 4.6.2.

Wer heute neu beginnt, landet damit zwangsläufig in der 4.8.0-Linie, denn .NET Framework 3.5 und 4.0 gehören zur Vergangenheit der Plattform. Die Kehrseite: Genau diese Linie trägt laut README den Status Beta.

Zum Stand nennt das README mehr als 7.800 bestandene Komponententests, eine gute Integration mit .NET 8.0 und .NET 6.0 sowie den Hinweis, dass einige Entwickler diese Fassung bereits in Produktionsumgebungen einsetzen. Die Formulierung einige Entwickler ist eine selbst berichtete Aussage ohne Zahlen. Ein Datum für das Ende der Beta-Phase nennt das README nicht, und Messwerte zur Leistung fehlen ebenfalls.

Install-Package Lucene.Net -Pre und die Analyse-Pakete für Japanisch und Chinesisch

Die Installation läuft über NuGet. Für die alte Linie nennt das README den Aufruf Install-Package Lucene.Net in der Paket-Manager-Konsole. Für die Beta lautet der Befehl Install-Package Lucene.Net -Pre, wobei erst der Zusatz -Pre den Zugriff auf Vorabfassungen öffnet.

Aufschlussreicher als der Kern ist die Liste der Zusatzpakete, weil sie den Umfang der Portierung zeigt. Genannt werden Lucene.Net.Analysis.Common für sprach- und fachbezogene Analyzer, Lucene.Net.Analysis.Kuromoji für Japanisch, Lucene.Net.Analysis.SmartCn für Chinesisch, Lucene.Net.Analysis.Stempel und Morfologik für Polnisch sowie Lucene.Net.Analysis.Phonetic für Klangsuche. Hinzu kommen Facet, Grouping, Highlighter, Join, Classification, Expressions, Codecs, Memory und weitere Module.

Für mehrsprachige Bestände ist genau diese Liste der Grund, sich mit Lucene.NET zu befassen, statt eine eigene Wortsuche zu bauen. Sprachbezogene Zerlegungsverfahren sind aufwendig und werden selten vollständig selbst geschrieben. Für die 3.0.3-Linie fällt die Liste deutlich kürzer aus; dort stehen Lucene.Net.Contrib und zwei Pakete für Geosuche bereit, eines davon mit Unterstützung für NetTopologySuite.

build und ./build mit PowerShell 5.0: Artefakte unter /_artifacts/NuGetPackages/

Der Bau aus den Quellen verlangt PowerShell ab Version 5.0 sowie das .NET 8.0 SDK oder neuer. Unter Windows genügt der Aufruf build mit den gewünschten Optionen, unter Linux oder macOS lautet er ./build. Als Optionen nennt das README die Konfiguration in Release oder Debug, die Zahl paralleler Aufgaben mit dem Standardwert 8, die Paketversion, die Entscheidung über den Testlauf sowie die dateibezogene Version.

Eine Zeitangabe in diesem Abschnitt ist bemerkenswert: Ein vollständiger Testlauf dauert bei acht parallelen Aufgaben in der Regel etwa vierzig Minuten. Wer den Bau in eine automatisierte Kette hängt, muss diese Dauer einplanen oder Tests gezielt abwählen. Die Ergebnisse liegen anschließend im Verzeichnis /_artifacts/NuGetPackages/.

Für die Arbeit im Editor nennt das README Visual Studio ab Version 2022; dort wird die Datei Lucene.Net.sln geöffnet und ein Zielframework gewählt. Daneben beschreibt das README den Weg über Azure DevOps, sowohl für neue als auch für bestehende Pipelines.

lucene-cli für Index-Wartung: Backup vor Split, Merge und Upgrade

Zur Werkzeugkiste gehört ein Kommandozeilenprogramm. Installiert wird es laut README mit dotnet tool install lucene-cli -g --version 4.8.0-beta00015, und das README weist ausdrücklich darauf hin, dass die Fassung des Werkzeugs zur verwendeten Lucene.NET-Version passen soll. Diese Kopplung über eine feste Versionsangabe ist im Betrieb leicht zu übersehen.

Das Programm kann mehr als nur Beispiele zeigen. Genannt werden Wartungsarbeiten am Index: das Teilen und Zusammenführen von Indizes, das Auflisten von Segment-Informationen, das Reparieren, das Löschen von Segmenten sowie das Aktualisieren auf einen neueren Stand. Für den Betrieb ersetzt das eine Reihe selbst geschriebener Hilfsprogramme.

Die auffälligste Zeile dieses Abschnitts ist eine Warnung. Vor dem Ausführen der Befehle soll eine Sicherung des Index angelegt werden. Da die genannten Arbeiten unmittelbar an den Indexdateien ansetzen, ist dieser Hinweis ernst zu nehmen. Für den Einstieg liegt Beispielcode im Projekt Lucene.Net.Demo, und die Dokumentation verweist für 4.8.0 auf die Projektseite, ergänzt um den Hinweis, dass die Schnittstelle der von Java Lucene 4.8.0 ähnelt.

beta00018 gegen 3.0.3: die Versionslücke und die Alternative SQLite FTS5

Die stärkste Einschränkung ergibt sich aus dem Versionsverlauf. Als neueste veröffentlichte Fassung nennt das README Lucene.NET 3.0.3, während die Arbeit an 4.8.0 läuft. Der Releaseverlauf zeigt, wie langsam dieser Weg ist: beta00016 erschien im Februar 2022, beta00017 im Oktober 2024 und beta00018 im Juni 2026. Zwischen den Vorabfassungen liegen damit jeweils mehr als ein Jahr.

Wer eine veröffentlichte Abhängigkeit verlangt, müsste auf 3.0.3 mit .NET Framework 4.0 oder 3.5 zurückgreifen, was für neue Vorhaben kaum in Frage kommt. Wer modernes .NET nutzt, arbeitet mit einer Beta, deren nächste Fassung nach diesem Rhythmus nicht absehbar ist. Beides weist das README offen aus, und genau diese Ehrlichkeit erleichtert die Entscheidung.

Als Alternative kommt SQLite mit der Erweiterung FTS5 infrage, wenn Volltextsuche innerhalb einer Anwendung ohne eigene Indexverwaltung gebraucht wird. Dort läuft die Suche als SQL-Abfrage, während sprachbezogene Analyzer, Facetten und Hervorhebung fehlen oder ergänzt werden müssen. Lucene.NET lohnt sich für mehrsprachige Bestände und für Anforderungen an Trefferhervorhebung. Die Apache-Lizenz 2.0 erlaubt den kommerziellen Einsatz einschließlich angepasster Varianten bei Beachtung der Hinweispflichten; eine Gewährleistung ist ausgeschlossen.

Redaktionelles Fazit

Lucene.NET trägt für Anwendungen, die Volltextsuche mit sprachbezogenen Analyzern, Trefferhervorhebung oder Facetten brauchen und auf .NET 8.0 oder .NET 6.0 laufen. Wer nur eine einfache Wortsuche in einer Anwendung benötigt, ist mit SQLite und FTS5 schlanker bedient. Ungeeignet ist das Projekt für Vorhaben, die eine veröffentlichte Fassung auf modernem .NET verlangen, denn dort steht nur die Beta 4.8.0 bereit. Vor dem Einsatz sollten ./build mit Tests und die für die eigene Sprache nötigen Analyse-Pakete geprüft werden.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen