从Cocoa应用程序中使用Lucene的最佳方法是什么?

我有兴趣从
Cocoa应用程序中使用Lucene.我知道有很多方法可以做到这一点,但我的问题是,“哪种方式最好?”我到目前为止的调查:

LuceneKit是Lucene的Objective-C端口,但是基于Lucene的一个版本,这个版本在这一点上是古老的,并且在尝试使用它时,我从一开始就遇到了几个主要问题. (NSDate的不正确的子类;在Luke中工作的基本查询不适用于LuceneKit;)它似乎是一个非启动者.

CLucene看起来可能是可行的,但它失败了一堆自己的构建测试,包括间歇性的并发相关问题,其中一半时间我运行测试他们死锁.不鼓舞人心.这仍然可能是答案,但考虑到我构建它并运行自己的测试的经验,我非常紧张.

当前的Apache Lucene通过JNI – 从来没有从C调用过Java库,我不确定这里涉及到什么.我当然觉得Lucene的官方Apache官方化身可能是最成熟和最实用的,但没有完成C< – > Java JNI之前的事情,我不清楚所涉及的工作与使用CLucene相比如何.

也许还有其他选择.我不一定在寻找一流的Objective-C界面(虽然我也不会拒绝一下)只是功能性的东西,并且希望合理地成熟并且具有合理的性能.有人有任何圣人建议吗?

最佳答案 根据我使用JNI的经验(虽然不是Lucene),让简单的工作变得简单并不是太棘手,但你最终可以编写很多相当单调的代码.

您可能需要考虑的另一个选项是JCC,PyLucene项目使用它来生成围绕JNI itnerface的样板C,然后用它们包装Python API.

点赞