Discuz教程网

搜索中查看最新主题帖子的简单解决办法

[复制链接]
authicon yldwshu 发表于 2013-3-14 17:08:32 | 显示全部楼层 |阅读模式

原帖如上,自动锁帖无法回复。单开帖子说明。

开始没仔细看帖子,以为是数据调用问题。才搞清楚是与 search.php 搜索相关。研究了下原来是这儿
   222451zdfbf8ficzhgm4ue.png   

  

解决办法实在是简单:
1、修改 /search.php, 在277行下面代码

  • $threads = $tids = 0;
  • $maxsearchresults = $maxsearchresults ? intval($maxsearchresults) : 500;
  • $query = $sdb->query("SELECT ".($srchtype == 'fulltext' ? 'DISTINCT' : '')." t.tid, t.closed, t.author $sqlsrch ORDER BY tid DESC LIMIT $maxsearchresults");

复制代码
之前添加


  • if (!empty($threadonly)) {
  • $sqlsrch .= ' AND t.replies = 0';
  • }

复制代码
.
.

2、修改模板 /templates/default/search.htm , 如下代码
复制代码
根据需要添加“&noreply=1”改成如下即可
复制代码
就十分钟的事,康盛到现在都没实现……

PS,创建一个 (replies, fid)的联合索引也许可以提升搜索速度. 说也许,是因为无法确定弱智的mysql是否会选择这条索引做优化。
如果是pgsql,创建如下一条部分索引,只针对无跟帖的主题,即减小了索引尺寸也极大提高索引性能


  • CREATE INDEX "threads.replies-fid_p" ON cdb_threads (replies, fid) TABLESPACE space1 WHERE replies = 0; -- 未有跟帖的

复制代码



上一篇:看看百度开源的编辑器功能,DZX的相比过于简单
下一篇:用户资料栏目强化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-4 02:31

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表