解决方法
我发现一种方法,这是惊奇的可以工作:从Java .jar文件创建一个.NET DLL!使用
IKVM可以通过
download Lucene获取.jar文件,并运行:
ikvmc -target:library <path-to-lucene.jar>
它生成一个.NET DLL,如下所示:lucene-core-2.4.0.dll
然后你可以从你的项目中引用这个DLL,你很好去!您将需要一些java类型,所以也参考IKVM.OpenJDK.ClassLibrary.dll.你的代码可能看起来像这样:
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);
我从来不知道你可以轻松地将Java与.NET的互操作性.最好的一点是C#和Java是“几乎”源代码兼容的(Lucene的例子).只需用Console.Writeln替换System.Out :).
=======
更新:当建立像Lucene荧光笔的库时,请确保引用核心程序集(否则会收到关于缺少类的警告).所以荧光笔是这样建造的:
ikvmc -target:library lucene-Highlighter-2.4.0.jar -r:lucene-core-2.4.0.dll