给自己的Blog 上添加定制的搜索引擎

CNBlog.org 已经在心得集的右上角增加了一个搜索功能。输入一个关键字,然后进入后发现就是Google的搜索功能,不同的是在界面上有了一个定制的CNBlog.org 标志,而且能够选择站内搜索还是在网络上搜索。因为CNBlog.org 的新站点时间还不长,所以目前搜索出来的内容还有限,这是Google的搜索算法所决定的。

如果你也有兴趣在自己的Blog上增加这样一个定制的搜索引擎。别急,先到Google里面搜搜看,自己的页面是否已经被Google 建立了索引。如果你发现一个以上的命中,就可以按照以下的步骤申请一个免费的定制化Google站内搜索:

1. 先到 Google Search Solutions 里面,用你的电子邮件注册一个免费的SiteSearch账号
2. 然后根据指示输入你的Blog 地址,如果你在Blogspot.com 上,请输入完整的xxx.blogspot.com (如果在Google中没有你的页面索引,Google 不会同意你的申请,请耐心等待数日)
3. 随后可以输入你的一些定制信息,例如你可以选择自己站点的图标,以及其他的一些颜色信息和版面格式。可以定制的内容不多,你就客随主便吧
4. Google随后为你提供一些代码,让你插入到页面的合适位置,但是这个代码显示的内容比较多,可能与你的页面风格不够相符,我们精简了代码,只显示一个输入框和一个搜索按钮。忽略了Google的图标和站内搜索/网络上搜索的选择,进入搜索页面还会显示Google的图标,所以不会违反Google的使用协议的精神。

精简的代码如下:(这里只是范例,你需要更改其中的地址部分为你的站点特征,我们用黄颜色标明)
<!-- Search Google --> 
<FORM method=GET action=http://www.google.com/custom>
<INPUT TYPE=text name=q size=20 maxlength=255 value="">
<INPUT type=submit name=sa VALUE="Search">       
<INPUT type=hidden name=cof VALUE= "L:http://www.cnblog.org/images/cnblog_logo.gif;AH:left;
S:http://www.cnblog.org;AWFID:f26bf4ce556af46f;">

<input type=hidden name=domains value= "cnblog.org">       
<input type=hidden name=sitesearch value= "cnblog.org">      
</FORM>
<!-- Search Google -->

相信随着你的站点被访问的次数增加,搜索的准确度和命中率会越来越高。

1,首先到Google申请免费站内搜索引擎。按照它的步骤填写完成。

2,得到Google给的html搜索代码,比如这样
<!-- Search Google -->
<center>
<FORM method=GET action=http://www.google.com/custom>
<TABLE bgcolor=#FFFFFF cellspacing=0 border=0>
<tr valign=top><td>
<A HREF=http://www.google.com/search>
<IMG SRC=http://www.google.com/logos/Logo_40wht.gif border=0 ALT=Google align=middle></A>
</td>
<td>
<INPUT TYPE=text name=q size=31 maxlength=255 value="">
<INPUT type=submit name=sa VALUE="Google Search">
<INPUT type=hidden name=cof VALUE="AH:center;AWFID:3182aae82da4ddf8;">
<input type=hidden name=domains value="blog.csdn.net"><br><input type=radio name=sitesearch value=""> %(domain)s <input type=radio name=sitesearch value="blog.csdn.net" checked> %(domain)s
</td></tr></TABLE>
</FORM>
</center>
<!-- Search Google -->

 

3,编码的问题 ,如果是gb2312的编码需要在表单中加入:
<input type=hidden name=ie value="GB2312">
<input type=hidden name=oe value="GB2312">
chedong对此作了了补充,可以在这里看到

4,在Blog管理界面的选项>>配置中的静态新闻/声明加入以上搜索引擎表单代码。
trying一下,还不行吧。:)。因为这个blog系统是asp.net的,整个页面是一个web form,.net的web form一创建就有一个很大的form了,看看html源代码,你会发现在body后边有一个名为Form1的表单,而Google给你的代码里边也有一个form了,form是不能够嵌套的。

5,改造一下google给你的代码,去掉那个form标签(别忘了结束的</FORM>标签也得去掉),在静态新闻/声明中加入下面一段脚本(必须加在google的代码之前)
<script language="javascript">
function on_search_click(){
 Form1.action = "http://www.google.com/custom/";
 Form1.target = "_blank";
 Form1.method = "get";
}
</script>
然后给submit按钮(就是那个Google Search按钮)加上onclick事件:onclick="javascript:on_search_click()"。
好了,当点击查询的时候,Form1表单的提交方向就改变了。

6,修改一下查询块的界面外观。
因为google给你的代码或许不能融合到你的页面风格当中,甚至因为文本输入框太长而撑坏你的leftmenu。你需要对这些代码做一些修改。去掉不需要的图片,改变文本框的长度。除了那些form对象外,比如input和button之类的元素不能够去掉之外,其他的那些google图片和表格都可以去掉,你还可以修改表单对象的样式。

现在好了,你的blog站内搜索引擎可以使用了。:)

最后我的修改如下

<script language="javascript">
function on_search_click(){
 Form1.action = "http://www.google.com/custom/";
 Form1.target = "_blank";
 Form1.method = "get";
}
</script>
<!-- Search Google -->
<center>
<table cellspacing="0" border="0">
<tr><td>Google 查询:</td></tr>
<tr valign="top"><td>
<input type="text" name="q" maxlength="255" value="" style="width:130px;border:3px double #cecece;">
<input type="submit" name="sa" value="Search" onclick="javascript:on_search_click()">
<input type="hidden" name="cof" value="AH:center;AWFID:3182aae82da4ddf8;">
<input type="hidden" name="ie" value="GB2312">
<input type="hidden" name="oe" value="GB2312">
<input type="hidden" name="domains" value="blog.csdn.net"><br>
<input type="radio" name="sitesearch" value=""> By WWW
<input type="radio" name="sitesearch" value="blog.csdn.net" checked="checked"> By Me
</td></tr></table>
</center>
<!-- Search Google -->
<br>


你可能感兴趣的:(Blog)