电子商务系统,站内查询是一个基本功能。但是开发一个高效的站内查询系统也不是件容易的事!好多站内查询系统都是通过lucene的2次开发来实现的。在站内查询系统开发完成之前,调用google的站内查询也是一个办法。
前几天,查找了相关资料,把其功能写成了一个函数方便调用,贴出来,希望对大家有用!
/**
*@description google查询对象
*@param sitesearch 搜索的指定网站或指定域名
*@param ie 发送搜索词的网页编码,预设值为"UTF-8",由于在中国很多网站是使用 GB2312 编码
*@param oe 显示搜索的网页编码,预设值为"UTF-8",由于现代大部分机器都能支持"UTF-8"无误,因此你大概不需要调整次参数;
*@param hl 显示搜索的网页语言。"zh-CN"为简体中文,"zh-TW"为繁体中文,"en"为英文。
*/
function GoogleSearch(sitesearch,ie,oe,hl){
this.sitesearch=sitesearch;
this.ie=ie;
this.oe=oe;
this.hl=hl;
}
GoogleSearch.prototype={
init:function(){
var searchdiv_=createEle("DIV",{"style":"display:none;"});
var form_=createEle("FORM",{"action":"http://www.google.cn/search", "method":"get", "name":"gs","id":"gs"});
var sitesearch_=createEle("input",{"name":"sitesearch","value":this.sitesearch, "type":"hidden"});
var hl_=createEle("INPUT",{"name":"hl", "value":this.hl,"type":"hidden"});
var ie_=createEle("INPUT",{"name":"ie","value":this.ie,"type":"hidden"});
var oe_=createEle("INPUT",{"name":"oe","value":this.oe,"type":"hidden"});
var query_=createEle("INPUT",{"name":"q","id":"q","type":"text"});
form_.appendChild(sitesearch_);
form_.appendChild(hl_);
form_.appendChild(ie_);
form_.appendChild(oe_);
form_.appendChild(query_);
searchdiv_.appendChild(form_);
document.body.appendChild(searchdiv_);
},
search:function(key){
if(document.getElementById("gs"))
this.init();
document.getElementById("q")["value"]=key;
document.getElementById("gs").submit()
}
}
function createEle(tagname,obj){
var ele=document.createElement(tagname);
for(property in obj){
ele.setAttribute(property,obj[property]);
}
return ele;
}
var GS=new GoogleSearch("www.youwebsite.com","GB2312","UTF-8","zh-CN");
其中www.youwebsite.com,是你的网站域名;
调用方式很简单:GS.search("查询关键字");
参考:http://www.blogjava.net/hulizhong/archive/2009/02/12/254350.html