9

我目前正在将 Java lucene 用于其中一个项目并获得不错的性能。我正在寻找 lucene 的 C/C++ 选项,并在 sourceforge 上遇到了 CLucene。

但是我想检查 CLucene 是否与 Java lucene 一样稳定可靠,并且具有 Java Lucene 支持的所有功能,它是否获得 apache 许可并得到积极支持?如果是,为什么我没有选择在 apache Lucene 站点上下载 CLucene(在 apache lucene 站点上我有 lucene.net 选项)。

想了解更多关于 CLucene 用于企业软件的信息。

4

3 回答 3

16

CLucene 在 Apache License v2.0 下可用,并且托管在sourceforge上。它不能从 Lucene 网站下载,因为 CLucene 是一个独立的项目。但是,Lucene的 C 端口(针对动态语言)可以从 Lucene 网站获得,因为它是 Lucene 的子项目。同样适用于 Lucene.NET。

除非您被迫不使用 JVM 语言,否则我建议您使用 Java 版本。

所有开发都是针对 Java 版本完成的,然后有时会向后移植到其他端口,例如 CLucene。因此,许多有用的特性仍然只在 Java 版本中可用(例如,函数查询在 CLucene 中不可用)。

在性能方面,C/C++ 有时可能比 Java 更快,但 Java 版本中有很多代码使用非常简洁的算法来提高性能,例如:

最后但并非最不重要的一点是,Java 版本是测试最多的版本,并在许多非常高流量的网站(例如 LinkedIn 或 Twitter)中使用。

于 2012-02-17T15:41:53.893 回答
9

CLucene 稳定可靠,与 Java 版本 (ASL) 使用相同的许可证。它没有从 Apache 网站链接,因为该项目不在 ASF 保护伞下。

CLucene 是 Java Lucene 的逐行移植,并且作为本机代码(不在 VM 上运行并且执行它自己的内存分配/释放等),它通常比 Java Lucene 更快。一些基准(现在有点旧)表明了这一点。作为一个精确的端口,它与 Java Lucene 索引 100% 兼容,反之亦然。

使用 CLucene 的唯一缺点是它与当前的 Lucene 版本不完全同步。

于 2012-02-18T17:21:27.127 回答
2

Lucene 的最新版本是 5.2,自 2.3.2 起对索引文件格式进行了重大更改,列于https://lucene.apache.org/core/5_2_1/core/org/apache/lucene/codecs/lucene50 /package-summary.html#package_description。我不相信还有比 CLucene 更新的东西。至于 Lucy,该网站表示:这两个库在文件格式或 API 方面都不兼容,并且没有计划建立这种兼容性。

于 2015-07-15T23:33:33.483 回答