Discuz! X2全文搜索
全文搜索其实是很占服务器资源的,据说帖子一上10W,一搜索服务器就当机,所以DZ开发了很多全文搜索的技术,比如用 Sphinx,比如站外搜索
但是有些小站如果要配置一个 Sphinx就很麻烦了,用站外搜索总是有时间差,就是等对方收录了你的帖子你才能搜索出来
所以对于小站来说,用用MYSQL直接搜索也是可以的,毕竟帖子不多
我发现DZ默认只能管理员全文搜索,而且还得到后台去设置
在后台-用户-管理组-管理员-基本设置里面可以开启“允许全文搜索”
在前台搜索的时候还得切换到高级搜索模式,把“全文”打上勾
而我的想法是让游客也可以全文搜索
/bbs/search.php?mod=forum&adv=yes&srchtxt=%B7%BD%B7%A8
这个是搜索路径
找到search.php文件,打开后发现是调用了
require DISCUZ_ROOT.’./source/module/search/search_’.$mod.’.php’;
其实就是\bbs\source\module\search\search_forum.php文件
打开后发现这个东西
$srchtype != ‘title’ && $srchtype != ‘fulltext’
也就是搜索有两种模式,一种标题,一种全文
下面还有几行
if($_G[‘group’][‘allowsearch’] & 32 && $srchtype == ‘fulltext’) {
periodscheck(‘searchbanperiods’);
} elseif($srchtype != ‘title’) {
$srchtype = ‘title’;
}
是和等级有关的,不允许全文搜索的等级全是用标题搜索
剩下的解决办法就很简单了,把这段代码去掉
后面添加个
$srchtype=’fulltext’;
不管三七二十一,全用全文搜索
测试通过~~~~~~~