Discuz! X2全文搜索

时间: 2012-09-18 / 分类: 网站制作技术 / 浏览次数: 5,616 views / 0个评论 发表评论

全文搜索其实是很占服务器资源的,据说帖子一上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’;

不管三七二十一,全用全文搜索

测试通过~~~~~~~

 

发表评论

您的昵称 *

您的邮箱 *

您的网站