通过Cache提升MT基于Tag搜索的速度.

    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';

    想试试就马上行动吧!

留言 (6)

谢谢:) 已经招此修改。

这个修改做的很不错:)

已经修改了:)谢谢

现在只要下载后到MT主目录解压就行了,不用自已改那么多了。

关于MT 4版本则将下载文件名变为NewSearch4.zip。

http://www.anysql.net/software/NewSearch.zip
http://www.anysql.net/software/NewSearch4.zip

已经使用,但是使用后不显示侧边栏。MT版本4.1:)

内容应当是由模板决定的,而不是由这个Search模块决定的。

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • He's crazy about Michael Jordan.
  • 他疯狂喜爱迈克·乔丹.
  • She hates boxing.
  • 她讨厌拳击.
  • She is sick of watching boxing.
  • 她厌恶观看拳击.
  • She has good taste in clothes.
  • 她对服装很有鉴赏力.
  • What do you like to do in your spare time?
  • 空闲时你喜欢干什么?