通过Cache提升MT基于Tag搜索的速度.
Weblog » http://www.anysql.net/weblog/tag_search_cache.html 2006-09-17MT-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';
想试试就马上行动吧!


谢谢:) 已经招此修改。
这个修改做的很不错:)
已经修改了:)谢谢
现在只要下载后到MT主目录解压就行了,不用自已改那么多了。
关于MT 4版本则将下载文件名变为NewSearch4.zip。
http://www.anysql.net/software/NewSearch.zip
http://www.anysql.net/software/NewSearch4.zip
已经使用,但是使用后不显示侧边栏。MT版本4.1:)
内容应当是由模板决定的,而不是由这个Search模块决定的。
非常感谢!!