【问题标题】:Best text search engine for integrating with custom web app?与自定义 Web 应用程序集成的最佳文本搜索引擎?
【发布时间】:2008-09-22 22:22:24
【问题描述】:

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

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

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

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

如果我忽略了其他任何好的选择,或者您是否有上述任何一种经验,请告诉我。

【问题讨论】:

标签: linux search web-applications full-text-search


【解决方案1】:

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

【讨论】:

  • 我一开始是在搞 Lucene,但后来发现 Solr,开箱即用起来要容易得多。我只花了几个小时就在它的基础上构建了一些东西,非常棒。
【解决方案2】:

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

【讨论】:

  • 这个看起来也不错,但我已经开始使用 Lucene/Solr。如果我在使用 Lucene/Solr 时遇到问题,我肯定会更多地研究 Sphinx。
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

    我想Google 会有一个满足您需求的解决方案。从这里开始:Google Enterprise

    【讨论】:

    • 这不是我想要的。我正在寻找可以与我们的应用程序紧密集成的更底层的东西。看起来 Lucene 有很多票,所以除非我找到更好的东西,否则这可能就是我最终的结果。
    【解决方案5】:

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

    【讨论】:

    • 而且不涉及 Java!
    【解决方案6】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-14
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 2018-03-29
      • 2016-04-08
      • 1970-01-01
      • 2011-07-05
      相关资源
      最近更新 更多