4

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

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

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

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

也许还有其他选择。我不一定要寻找一流的 Objective-C 接口(尽管我也不会拒绝),只是功能性强、希望相当成熟且性能合理的接口。任何人有任何圣人的建议?

4

1 回答 1

2

根据我使用 JNI 的经验(尽管不是使用 Lucene),让一些简单的东西工作起来并不太难,但你最终可能会编写很多相当单调的代码来连接所有东西。

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

于 2011-03-13T01:13:18.073 回答