402 字3 分钟
Z-Blog 站内搜索优化
使用 Z-Blog 的朋友也许都发现了,Z 自带站内搜索的结果,摘要部分会有原始的 html 代码,那么也许你要问,为什么不直接显示 html 格式呢?
搜索结果是在内容部分上行 100 个字符、下行 200 个字符,这时候就没办法控制不截断 html 代码,截断的几率还是很大的,所以只好把 html 代码转换成可以显示的格式一起搜索了。
那么我们有什么办法解决这样的问题呢?先看百度和 Google,随便搜索一个结果,你会发现结果部分既没有 html 代码也不是 html 格式,见下图。搜索引擎爬虫抓站导入数据库的时候也是要过滤掉 html 代码的。

站内搜索就是一个简单的搜索引擎,如果我们把需要搜索字段的 html 先过滤掉,效果应该更好一些。当然了,也就不会出现奇怪的 html 代码在页面上了。
下面说一下针对 Z-Blog 的修改,打开 FUNCTION/c_system_lib.asp,大约 574 行
aryTemplateTagsValue(4) = Search(TransferHTML(Intro & Content, "[html-format]"), Request.QueryString("q"))找到上面的代码,修改为
aryTemplateTagsValue(4) = Search(TransferHTML(Intro & Content, "[html-format][nohtml]"), Request.QueryString("q"))注:TransferHTML 为 Z-Blog 自带的函数,[html-format]、[nohtml]均为可选参数,可以参考 FUNCTION/c_function.asp
就是这么多了,也许你要说用插件解决这个问题,这里我觉得还是直接修改源码更好。