Hat jemand von Euch schon mal lucene.net eingesetzt und kann mir sagen, wie es um die deutsche Sprachunterstützung bestellt ist - ein deutscher Analyzer, ein deutscher Stemmer usw.? Laut Doku sollten sich diese Module unter contrib/analyzers befinden. Im aktuellen (?) 2.9.2-Release finde ich dort aber nur Versionen für Arabisch und Brasilianisch. Für die Java-Version von Lucene gibt es deutsche Sprachunterstützung, soweit ich weiß. Sollte die tatsächlich noch niemand portiert haben?
Beim Hersteller (Intrafind) gibt es eine deutsche Sprachunterstützung, die man als Modul dazu kaufen kann. Da Intrafind in Deutschland beheimatet ist, ist die sicherlich auch nicht schlecht.
Danke für den Hinweis, ist auf jeden Fall gut zu wissen, auch wenn ich für diesen Fall eher nach OpenSource suche. Aber hab ich es nur nicht gefunden, oder wird dieses Modul auf die Homepage von Intrafind nicht beschrieben (außer einem allgemeinen Hinweis bei den Beratungsangeboten), geschweige denn mit einem Preisschild und Lizenzangaben versehen? Ich hab ehrlich gesagt eher eine Abneigung gegen Anbieter, die sich so bedeckt halten.
Ruf doch einfach mal an. Kann durchaus sein, dass es nicht auf der Homepage zu finden ist, aber wir haben das von denen verkauft bekommen, bzw. es war Teil von dem Gesamtpaket.
OpenSource ist für meine Firma keine Option. Vielleicht gibt es das Paket also auch irgendwo kostenlos, und ich kenne es nur nicht.
Ja, aber nicht wir setzen lucene.net ein, sondern Intrafind, das für uns die Volltextsuche implementiert hat. Da ist ein großer Unterschied, den nur Manager wirklich verstehen. Im Prinzip zahlen wir einen Haufen Kohle für ein OpenSource-Produkt, damit wir es nicht OpenSource nennen müssen...
Die gesuchte Funktionalität befindet sich nicht unter contrib/Analyzers, sondern in contrib/Snowball.Net. In diesem Package gibt es zwei Stemmer für Deutsch (zu den Unterschieden siehe German stemming algorithm variant) und je eine generische Filter- und Analyzer-Klasse.
Benutzt werden sie z.B. so:
//instantiiert unter der Haube SnowballFilter, //der über den Parameter per Reflection den German2Stemmer konstruiert var analyzer = new SnowballAnalyzer("German2");
Es gibt noch einen weiteren unter contrib/Analyzers und zwar den
Analyzer analyzer = new Lucene.Net.Analysis.De.GermanAnalyzer();
Ich verwende hier die Version "Apache-Lucene.Net-2.9.4-incubating.bin.zip", da ist der GermanAnalyzer dabei. Unterschiede habe ich beim Snowball und bei dem GermanAnalayzer nicht feststellen können, bin aber auch nicht tiefer in die Thematik gegangen.
+1: Danke für den Tip. Damals war 2.9.4 zwar schon lange angekündigt, aber noch nicht veröffentlicht. Hatte noch gar nicht mitbekommen, dass das nun draußen aus. Werde ich mir mal anschauen.