寻找基本的PHP / MySQL搜索类

时间:2010-10-08 14:55:53

标签: php mysql search class lazy-evaluation

Noob-ish问题:我正在寻找一种轻量级但不错的php方式来搜索MySql表的所有字段,无论结构如何。我首先尝试使用默认的mysql选择,但这太基本了。我正在寻找一些至少应该通过最佳匹配来排序结果的东西(关键字突出显示也会很好)。

我发现谷歌搜索的小信息让我感到惊讶。 到目前为止我发现的是Zend Framework Lucene implementation但是对于我的需求而言似乎有点过于沉重(构建一个单独的索引)。在深入研究之前,我想知道是否有更简单的方法。

2 个答案:

答案 0 :(得分:3)

因为搜索是一件非常复杂的事情。想想你在问什么。你想要一个小小的搜索引擎,它可以弄清楚你的桌子是如何布局的,以及相关的内容以及应该进入的顺序。如果你能够发明这一点,你就会变得富有并且可能在谷歌工作。

像你提到的Lucene,或者Sphinx搜索(http://sphinxsearch.com/)都很棒。 MySQL还有一个内置的全文搜索,您可以在http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

找到它

但所有这些都需要配置和实现。他们不只是“知道”你想要的东西。

我能想到的最接近的是尝试Google自定义搜索(http://www.google.com/cse/)。这不会查看您的数据库,而是在您的网站动态组合后对您的网站进行拼接并为其编制索引。您不必担心索引,因为这一切都是在Google完成的。当然你仍然无法自定义排名(谷歌决定它),你放弃了对数据的控制,但我认为它与你将要找到的“开箱即用”解决方案一样接近。

答案 1 :(得分:1)

我是Sphider(http://sphider.eu)搜索引擎的粉丝。

它相对重量轻,易于设置,并且可以进行多个站点。与谷歌自定义搜索非常相似,它不会直接搜索您的表格,而是在您的页面被动态构建后直接搜索。

Sphider不是一个企业解决方案,但它可以在多达10,000个页面的网站上运行而不会有太多的性能损失。