【问题标题】:My website searches for data in heavy databases. Should I use Lucene to search or write my own algorithm?我的网站在繁重的数据库中搜索数据。我应该使用 Lucene 搜索还是编写自己的算法?
【发布时间】:2012-02-16 14:50:46
【问题描述】:

我正在编写一个网站,它将大量数据索引到数据库中(每个数据库大约有 800 个表),并且该网站允许您在数据库中搜索各种项目。我应该使用 lucene 之类的东西还是只编写自己的搜索算法?我正在使用 PHP 和 MySQL。虽然我可以过滤我的 SELECT 查询并创建一个搜索算法,但我只是想知道是否应该使用 Lucene,因为我只是在数据库中索引内容。也请提出任何可能对我有帮助的建议。忘了提,即使我有 800 张桌子,它们的大小也会非常小。

【问题讨论】:

  • 您是在谈论 Zend_Search_Lucene 还是 Java 实现?还有基于 Lucene 的替代方案,提供更完整的解决方案。无论哪种方式,您都应该明确要执行的搜索类型。
  • 即使不知道您的数据集,我也可以 99% 肯定地说,编写自己的搜索算法是错误的路径。
  • 您能提供一些技术细节吗?如果没有 Lucene,你会怎么做?您将如何使用 Lucene?数据库中有什么?他们是如何搜索的?你怎么知道你需要一个全文搜索引擎?

标签: php mysql database algorithm lucene


【解决方案1】:

Lucene 是一个成熟的、经过测试的开源库。

我肯定会说:尝试尽可能多地使用它,它可能会更好,并且比实现自己的库花费更少的时间。
如果 lucene 不提供某些功能 - 您始终可以创建自己的 lucene 变体来处理它。

不要低估社区在使用 lucene 等产品方面的重要性:几乎总是在 lucene 的论坛 [和 SO] 中提供帮助,并且由于用户众多,该库会不断测试和维护!

【讨论】:

    【解决方案2】:

    在没有看到您的数据的情况下回答这个问题非常困难,但我可以根据个人经验说,编写任何类型的搜索很快就会变得非常复杂。您必须担心要搜索的各个列的权重,并且 SQL 中的搜索几乎永远不会像专用搜索引擎中的搜索那样快。由于这个原因,我们在工作中从基于内部 SQL 的搜索切换到 Sphinx 搜索来搜索我们的产品目录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-26
      • 2013-05-01
      • 1970-01-01
      • 2013-10-28
      • 2011-06-06
      • 2012-01-19
      • 2020-07-09
      • 2014-02-18
      相关资源
      最近更新 更多