Eine Möglichkeit, die ich gefunden habe, die überrascht war, könnte funktionieren: Erstellen Sie eine .NET DLL aus einer Java .jar Datei! Mit IKVM Sie können download Lucene, erhalten die .jar-Datei, und führen Sie:
ikvmc -target:library <path-to-lucene.jar>
, die eine .NET-DLL wie folgt erzeugt: Lucene-Core-2.4.0.dll
können Sie dann verweisen gerade diese DLL von Ihrem Projekt und Sie sind gut zu gehen! Es gibt einige Java-Typen, die Sie benötigen, also referenzieren Sie auch IKVM.OpenJDK.ClassLibrary.dll. Ihr Code könnte etwa so aussehen:
QueryParser parser = new QueryParser("field1", analyzer);
java.util.Map boosts = new java.util.HashMap();
boosts.put("field1", new java.lang.Float(1.0));
boosts.put("field2", new java.lang.Float(10.0));
MultiFieldQueryParser multiParser = new MultiFieldQueryParser
(new string[] { "field1", "field2" }, analyzer, boosts);
multiParser.setDefaultOperator(QueryParser.Operator.OR);
Query query = multiParser.parse("ABC");
Hits hits = isearcher.search(query);
Ich wusste nie, dass Sie Java so leicht mit .NET-Interoperabilität verbinden können. Der beste Teil ist, dass C# und Java "fast" mit Quellcode kompatibel sind (wo Lucene Beispiele betroffen sind). Ersetzen Sie einfach System.Out
durch Console.Writeln
:).
=======
Update: Wenn Bibliotheken wie der Highlighter Lucene bauen, stellen Sie sicher, dass Sie den Kern Assembly verweisen (sonst Warnungen erhalten Sie über fehlende Klassen). So wird der Textmarker wie folgt aufgebaut:
ikvmc -target:library lucene-highlighter-2.4.0.jar -r:lucene-core-2.4.0.dll
Jemand mit mehr Lob als ich soll die „lucence“ bearbeiten, um Lucene – friism
gerade reparierte es :) – Kalid