4

我们有一个网络应用程序,允许用户上传文档、创建自己的文档等等。上传的文件存储在 Amazon S3 上,创建的信息存储在 MySQL 数据库中。我正在寻找的是某种搜索引擎,我将所有的文本文档都提供给它,每个文档都有一个唯一的 ID,它会建立一个索引或其他什么。稍后,我可以给它搜索查询,它会提取出最匹配的文档(通过他们的 ID),以及匹配的文本片段。

基本上,我们希望允许我们的用户搜索他们上传的内容的存储库,以及其他用户标记为公开的任何内容。该解决方案应该在标准 Linux 服务器上运行,理想情况下它应该是开源的,但如果价格不高,我也会考虑付费解决方案。

到目前为止,我已经找到了三个潜在的候选人:

  1. MySQL全文搜索-我读过的一些报告是它非常慢
  2. Apache Lucene - 不幸的是用 Java 编写的,但如果必须,我会使用它。据说很快
  3. Sphinx - 似乎没有那么受欢迎,理想情况下,我找到的任何解决方案都会有很多社区支持。

请让我知道是否还有其他我忽略的好选择,或者您是否有上述任何方面的经验。

4

6 回答 6

5

看看Solr。它基于 Lucene,因此速度非常快,而且在任何平台上都非常容易使用。

于 2008-09-29T16:12:50.320 回答
2

Sphinx可能值得您考虑,因为它适用于几种常见的 RDMS(尤其是 MySQL)

于 2008-09-29T16:15:17.147 回答
1

还有Xapian,它速度很快,而且非常可定制。

它支持自定义索引器,允许索引未存储在数据库中的数据,这可能对存储在 S3 上的文档有用。

于 2008-09-29T15:34:12.487 回答
0

我想谷歌会有一个满足你需求的解决方案。从这里开始:谷歌企业

于 2008-09-22T22:26:56.247 回答
0

Lucene 有一个 Ruby 端口,叫做“ Ferret ”。除了 Ruby API,您还可以获得名为“cFerret”的底层 c 实现。

于 2008-09-22T22:42:41.997 回答
0

Lucene 非常好。虽然它最初是用 java 编写的,但有一个 php 实现http://framework.zend.com/manual/en/zend.search.lucene.html

于 2008-09-22T22:46:03.390 回答