加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读