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

时间:2011-03-12 23:43:09

标签: cocoa lucene java-native-interface clucene

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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