java – 如何在.net上运行Lucene?
发布时间:2020-12-14 16:28:32 所属栏目:Java 来源:网络整理
导读:Lucene是一个很好的搜索引擎,但是.NET版本是官方 Java版本(最新的稳定的.NET版本是2.0,但最新的Java Lucene版本是2.4,它具有更多的功能). 你如何解决这个问题? 解决方法 我发现一种方法,这是惊奇的可以工作:从Java .jar文件创建一个.NET DLL!使用 IKVM可
Lucene是一个很好的搜索引擎,但是.NET版本是官方
Java版本(最新的稳定的.NET版本是2.0,但最新的Java Lucene版本是2.4,它具有更多的功能).
你如何解决这个问题? 解决方法
我发现一种方法,这是惊奇的可以工作:从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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |