我正在PHP中从头开始构建一个论坛。我已经使用了大部分phpBB:s数据库结构。
但是现在我正在考虑搜索功能?什么是能够在所有帖子中快速搜索的好设计。我想必须有一些比mysql中的%query_string%更好的方法:)
也许将所有句子分解为单词,让单词成为哈希表中的键,值是逗号分隔的单词列表中的所有帖子?如果你删除一个帖子就没那么麻烦,但我认为这种方法更好。
从一开始我想我可以使用简单的解决方案,但我不想在论坛变大时更改代码。
感谢您的任何想法,或者您是否可以指出我正确的方向!
答案 0 :(得分:4)
Zend Lucene是一种将搜索添加到PHP站点的强大方法。
这是一篇关于如何做到这一点的文章:Roll Your Own Search Engine with Zend_Search_Lucene
答案 1 :(得分:1)
今天我的最佳选择是sphinx search。它可以用于php,rails,perl,直到现在我的工作就像一个魅力。您可以查看php solution。例如Craiglist使用它。
答案 2 :(得分:1)
答案 3 :(得分:0)
大多数论坛用户不仅需要字符串搜索。他们可能不知道他们需要的确切短语,当他们搜索“论坛搜索”时,他们会很高兴找到“如何搜索论坛”的结果,其中包含相关的术语但是以不同的顺序并用其他单词分隔
如果他们不知道所需要的拼写,他们可能还需要一些模糊搜索。他们可能会搜索“sequal”并想要“sql”。
所有这些都指向一个比你喜欢的更复杂的解决方案。
现在最重要的指针是,无论你实现什么,你应该确保很容易将它切换出来,以便以后更好地使用。确保您的搜索是可热插拔的,因为您知道以后需要更改它。