巧用Google,轻松实现站内搜索
网络与通信
网站信息量一大,就会给浏览者一种“一入侯门深似海”的感觉,即使导航做得再好,用户也常常找不到有用的信息。最好的解决办法当然是建立“站内搜索”,“站内搜索”可以将你网站的内容最大限度地提供给用户。不过建立一套较完善的站内搜索系统是一件很复杂的事情,笔者也像许多站长一样,希望能得到一种免费、高效、可行的方法。
一日在学习Google的搜索语法的时候,发现了它的一个奇特功能──搜索特定域名。文档是这样描述限定域名搜索的:它可以强令Google只搜索指定域中符合搜索条件的内容,域可以是后缀、顶级域名或某一特定网站。笔者灵机一动,如果能做一个页面,自动将用户每次填写的搜索条件限定为只搜索自己的网站,这不就实现了对我们网站的站内搜索了么?
限定搜索的语法是:“关键字(空格)site:域名”。比如我们要在天极网搜索关于“中关村”的内容,就应该在搜索栏填入“中关村 site:yesky.com”。
说干就干,我们可以利用Google免费提供的一个搜索代码(从Google首页,点击Google大全,然后在“在我的网站Google”一项可以找到代码)。大家可以看出,这只是一个很普通的表单。为了实现我们需要的站内搜索功能,对其稍作改动就行了,改动后源码如下(加黑部分是改动了的部分,对应的搜索界面如(图1))。

<-- Search Google -->
<-- Search Google -->
首先是增加了一个隐藏的名为ss的INPUT表单域,用来保存为专门对自己网站实现站内搜索的限定条件(也可以使用一段脚本,在变量中储存这个值,但显然用隐藏的INPUT域更简便)。其次,由于我们会固定增加约十个字符的搜索条件,为了避免最后生成的搜索条件超长,将原来名为q的表单域的最大长度改为240。
最后还对界面做了小小的汉化(看出来了吗),并为名为btnG的submit按钮增加一个单击事件。事件内容就是将q域本身的内容加上ss域的内容(即我们的限制条件),再追加到q域,完成提交事件。送到Google服务器的搜索内容当然已经是:“关键字 site:yesky.com”。
将其保存为网页,或加入到你网页的相关位置就可以看到效果了。测试一下效果,还不错吧,搜索到的与关键字匹配的内容全部都是yesky.com中的内容(为了公平起见,笔者测试的是比较热门的关键字,搜索结果如(图2))。

笔者在这里还要补充一点,可能大家都看出来了,这个搜索界面还可以自行定制,也不一定要保留Google图标,可单独成为一个页面。而且输出的搜索结果页也还可以再“遮挡”一下,那就与你自己的网页更“融洽”一点了。不过这样做得“太绝”会不会引起Google的不满呢?所以最好还是给人家保留一个图标:)