MT-3.3x版本提供了方便的Tag功能, 也提供了按照Tag来进行搜索的功能. 不过MT的搜索功能在资源很紧张的DreamHost上使用时, 速度比较慢, 打开一个Tag的搜索需要4秒钟以上, 实在是一件不让人高兴的事情. 于是我想着如果以将Tag的搜索结果缓存起来, 访问起来就会比较快了, 这个想法是很合理的, 因为一个主页上的Tag数量不会很多, 按Tag搜索的结果变化不大, 除非是你一天内发布了大量的文章.

    通过研究Search.pm的代码, 我改写了一份新的Search代码, 取名为"NewSearch". 新的代码会将按Tag搜索的结果缓存起来, 缓存的有效期限为1天, 对于普通的直接搜索则不进行缓存. 这样改进后, 理论上每个Tag搜索一天只有一次会比较慢一点, 其他所有的占击都会从缓存中获得结果. 你可以试试本站上基于Tag的搜索速度.

    如果你想用这个功能, 只需要下载新的Search代码, 将解压后的文件放到MT_HOME/lib/MT/App目录下, 在MT_HOME下面建一个searchcache的目录, 并修改MT_HOME下的mt-search.cgi文件, 将下面一行代码:

use MT::Bootstrap App => 'MT::App::Search';

    变为:

use MT::Bootstrap App => 'MT::App::NewSearch';

    想试试就马上行动吧!