1

我正在用 PHP 从头开始​​构建一个论坛。我已经使用了大部分 phpBB:s 数据库结构。

但是现在我正在考虑搜索功能?,什么是能够在所有帖子中快速搜索的好设计。我想肯定有比 mysql 中的 %query_string% 更好的方法 :)

也许将所有句子分解成单词,让单词成为哈希表中的键,值是单词所在的所有帖子的逗号分隔列表?然后,如果您删除帖子,则麻烦不大,但我认为这种方法更好。

从一开始我想我可以使用简单的解决方案,但是当论坛变大时我不想更改代码。

感谢您的任何想法,或者如果您能指出我正确的方向!

4

4 回答 4

4

Zend Lucene是一种向 PHP 站点添加搜索的强大方法。

这是一篇关于如何做到这一点的文章:Roll Your Own Search Engine with Zend_Search_Lucene

于 2009-07-20T07:52:08.407 回答
1

今天对我来说最好的选择是sphinx search。它可以与 php、rails、perl 一起使用,直到现在对我来说就像一个魅力。您可以检查一个php 解决方案。例如 Craiglist 使用它。

于 2009-07-20T07:51:23.337 回答
1

不要重新发明轮子。看看Lucene。还有一个用于php的端口:

Zend Lucene

Lucene 为您进行解析和索引,查询速度快如闪电。

于 2009-07-20T07:52:17.953 回答
0

大多数论坛用户需要的不仅仅是字符串搜索。他们可能不知道他们需要的确切短语,当他们搜索“论坛搜索”时,他们会很高兴找到“如何搜索论坛”的结果,其中包含相关术语但顺序不同并由其他单词分隔.

如果他们不知道所需内容的拼写,他们可能还需要一些模糊搜索。他们可能会搜索“sequal”并想要“sql”。

所有这些都指向一个比您的喜欢搜索更复杂的解决方案。

现在最重要的一点是,无论你实现什么,你都应该确保很容易将其切换出来,以便以后更好地实现。确保您的搜索是可热插拔的,因为您知道以后会想要更改它。

于 2009-07-20T07:54:25.937 回答