GOOGLE,BAIDU,YAHOO,LIVE对用户点选命中的处理(一)
发布:javahui | 发布时间: 2007年5月31日用户点选命中这个概念是包含于搜索引擎命中这个范畴中的。搜索引擎的命中,就是你敲入关键字后,搜索引擎返回的所有结果。搜索引擎有效命中,是指找出与搜索关键字含义相匹配的网页。而用户点击命中,是指用户在搜索命中的结果中,发现了自己需要的结果,然后点击的网页链接。
搜索引擎命中、有效命中和用户点选命中之间的关系如下图:

绿色的Matched Pages是理想的和关键字完全相关的页面。金黄色的Result Pages就是搜索返回的结果集,它与Matched Pages交集的多少,决定了搜索引擎的质量。蓝色的Clicked Pages就是用户点选命中,它是一个很特殊的区域。首先它一定是被限制在金黄色的Result Pages中,然后由于这个点击是每位搜索用户根据网页标题以及摘要判断后进行的,它将最大限度的包含在Matched Pages中,当然少量判断错误的情况也很自然,所以Clicked Pages又不会完全在Matched Pages中。
当搜索引擎记录了Click Pages后,它就可以根据这个记录,调整Result Pages集和该集内条目的排序,把总是不被Click的页面逐渐移出该集合,而将更多将可能的Matched Pages命中移入。即图中A-->B的变化过程,当然理想的情况是Result Pages就是Matched Pages啦,并将Clicked多的结果条目尽可能往前排。目前的主流搜索引擎:Google、Baidu、Yahoo和微软Live,其中除了baidu外,其它三种引擎都可能收集了Clicked Page,不过他们在实现技术上又有所差别。
Google收集方案:简单、优雅

// 最初好像这里是指向的google的页面,然后再重定向到目的页面
当然这里的link,Google对其进行了处理:<a class=l href="http://bi.u-soft.com.cn/Products/ai2005/" target=_blank onmousedown="return clk(0,'','','res','1','')">极光商智2005概览- 宏信极光商智</a>。简单的加上了一个onmousedown事件,clk函数定义如下:
window.clk=function(b,c,d,h,i,j)

{
if(document.images)
{
var a=window.encodeURIComponent?encodeURIComponent:escape,e="",f="",g="";
if(b)
{e="&url="+a(b.replace(/#.*/,"")).replace(/\+/g,"%2B")}
if(c)
{f="&oi="+a(c)}
if(d)
{g="&cad="+a(d)}
(new Image).src="/url?sa=T"+f+g+"&ct="+a(h)+"&cd="+a(i)+e+"&ei=hhp7RfHwGpnIwQKr-qiTCA"+j
}
return true
} // HTML元素中,除了Image可以直接new外,还有Option对象也可以直接new,不过我也不清楚为什么要这么设计
代码混淆过,相当不可读,不过这不是我们关心的重点。这里可以看到Google巧妙的使用了Image对象会预先载入图片的技巧,实现了Clicked Page的回报。这里图片的实际地址是:/url?sa=T&ct=res&cd=1&ei=hhp7RfHwGpnIwQKr-qiTCA,其中的ei=hhp7RfHwGpnIwQKr-qiTCA,应该是连接标识。对该图片访问后的返回结果,Google是做了最佳优化处理的,该请求返回的http响应是204,即:
HTTP/1.1 204 No Content
Cache-Control: private
Content-Type: text/html
Server: GWS/2.1
Content-Length: 0
Date: Sat, 09 Dec 2006 20:41:45 GMT // 关于http协议204的解释请参看RFC2616
微软Live收集方案:简单、臃肿

怎么简单又臃肿呢,这不是自相矛盾吗?简单是说Live也是用Image对象相来报告Chicked Page的,而臃肿是说微软的这个Live的页面。微软也是简单的对link进行了处理:<a href="http://yyq123.wordpress.com/2006/04/" gping="/GLinkPing.aspx?/_1_9SE/1? http://yyq123.wordpress.com/2006/04/ & & DI=6244& IG=e982db6143c048488736e2f890c94aa9& POS=1& CM=WPU& CE=1& CS=AWP& SR=1& sample=0">2006 April « 语虚</a>。似乎是只加了一个gping的自定义属性,但接下来的事情就会让你晕倒死。。。
完成GLinkPing(名字取得不错,但怎么感觉是尽整没用的呢)功能的脚本代码为:
GTracking.GLink = function()

{
var TIMEOUT = 3 * 1000;
var _timer = null;
var _img = null;
var _bIsIE = false;
var _clickedAnchor = null;
var _mouseCapturedElement = null;
bind_method(document.body, "mousedown", onMouseDown, false);
bind_method(document.body, "mouseup", onMouseUp, false);
bind_method(window, "unload", onUnload, false);
if(document.body.addEventListener)
{
_bIsIE = false;
}// document.body.attachEvent is added by atlascompat.js and will confuse this code if loaded.
else //if(document.body.attachEvent)
{
_bIsIE = true;
}
function onMouseDown(theEvent)
{
if(_bIsIE)
_mouseCapturedElement = window.event.srcElement;
else
_mouseCapturedElement = theEvent.target;
}
function onMouseUp(theEvent)
{
var evt;
var src;
if(_bIsIE)
{
evt = window.event;
src = evt.srcElement;
}
else
{
evt = theEvent;
src = evt.target;
}
if(_mouseCapturedElement != src || evt.button == 2)
{
_mouseCapturedElement = null;
return;
}
src = getPingElement(src);
if(src == null)
{
return;
}
if(AllowParallelNavigation(evt, src))
{
_img = new Image();
_img.src = src.attributes["gping"].value;
return true;
}
_clickedAnchor = src;
if(_bIsIE)
{
evt.returnValue = false;
}
else
{
evt.preventDefault();
}
doPing(src.attributes["gping"].value);
return false;
}
function AllowParallelNavigation(evt, src)
{
var retVal = false;
if(src.attributes["target"] && src.attributes["target"].nodeValue == "_blank")
retVal = true;
// new window
if(evt.shiftKey == true)
retVal = true;
// new tab
if(evt.ctrlKey == true)
retVal = true;
//middle mouse button
if(evt.button == 4)
retVal = true;
return retVal;
}
function getPingElement(src)
{
var retVal = src;
var bHasPing = hasPing(src);
while( bHasPing == false )
{
src = src.parentNode;
if(src == null)
{
retVal = src;
break;
}
bHasPing = hasPing(src);
if(bHasPing)
{
retVal = src;
break;
}
}
return retVal;
}
// FF was not behaving properly in the terse version of this check
function hasPing(node)
{
var retVal = false;
if(node.attributes)
{
if(node.attributes["gping"])
retVal = true;
}
return retVal;
}
function doPing(payload)
{
_img = new Image();
bind_method(_img, "load", onPingComplete, false);
_img.src = payload;
_timer = setTimeout(onPingComplete, TIMEOUT);
}
function onPingComplete()
{
_img = null;
resetTimeout();
doNav();
}
function resetTimeout()
{
if(_timer)
{
clearTimeout(_timer);
_timer = null;
}
}
function doNav()
{
if(_clickedAnchor)
{
if( _bIsIE )
{
_clickedAnchor.click();
}
else
{
var clicker = document.createEvent("MouseEvents");
clicker.initEvent("click", true, true);
_clickedAnchor.dispatchEvent(clicker);
}
}
}
function onUnload()
{
unbind_method(document.body, "mouseDown", onMouseDown, false);
unbind_method(document.body, "mouseup", onMouseUp, false);
unbind_method(window, "unload", onUnload, false);
}
} // 神啊,救救我吧!Google就用了10来行代码,还做了浏览器兼容
算了,这事儿就当微软的程序员写代码效率高,一袋烟的功夫就是近200行。Live中Image访问的地址是:/GLinkPing.aspx?/_1_9SE/1?http://yyq123.wordpress.com/2006/04/&& DI=6244& IG=31498446f2a144f6993cd513bf80c39a& POS=1& CM=WPU& CE=1& CS=AWP& SR=1& sample=0,其中那个IG应该是个GUID,由于Live还回传了该被点击页面的URL(http://yyq123.wordpress.com/2006/04/),所以那个IG可能是关键字标识。最后看看这个Image的返回结果,没有想到微软还真的把这个请求当了回事儿,给浏览器返回了一个gif图片@_@:
HTTP/1.1 200 OK
Content-Length: 42
Content-Type: image/gif
X-Powered-By: ASP.NET
P3P: CP="NON UNI COM NAV STA LOC CURa DEVa PSAa PSDa OUR IND", policyref="http://privacy.msn.com/w3c/p3p.xml"
X-TraceID: 056743472244460c8331da7eeea643bd
Expires: Sat, 09 Dec 2006 21:17:51 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Sat, 09 Dec 2006 21:17:51 GMT
Connection: keep-alive
GIF89a // 也就42个字节的gif图片,要是一直缓存在内存中可能也没啥吧
- 相关文章:
- 3.mpcwffk
- http://www.chengxinba.cn
- ajnpjwgrl
北京辦證13121228655QQ1029365788面向全国专业办理证件/發票/刻章等业务,1、全日制毕业书、自学考试、成人教育、英语 四、六、八级证书、雅思成绩、计算机等级、外语等级考试、并可以按客户要求制作印刷.联系电话:13121228655张先生 本公司郑重承诺:所有证件保证质量均满意后付款.咨询电话:13121228655张先生,北京辦證13121228655朝阳辦證13121228655丰台辦證13121228655石景山辦證13121228655东城辦證13121228655西城辦證13121228655昌平辦證13121228655北京辦證电话13121228655代开發票,专业制作雅思成绩13121228655 全国地区办证范围介绍:天津办证 上海办证 江苏办证 山东办证 河南办证 辽宁办证 广州办证 广西办证 吉林办证 湖北办证 湖南办证 河北办证 山西办证 浙江办证 江西办证 辽宁办证 青海办证 安徽办证 陕西办证 甘肃办证 云南办证 贵州办证 四川办证 台湾办证 海南办证 福建办证
北京诚信证件制作公司
网址:http://www.chengxinba.cn - 2008-10-27 15:46:08 回复该留言
- 4.水控机
- http://www.jnnbl.com/shuikongji.htm
- 支持楼上观点。
- 2008-11-5 10:40:39 回复该留言
- 5.水控机
- http://www.jnnbl.com/shuikongji.htm
- 精品美文,真好。。。
- 2008-11-5 12:49:50 回复该留言
- 6.fxftvojxf
- http://www.chengxinba.cn
- xsxpaqpk
本公司一直以来以最优的诚信服务待人,以最高的专业水平来达到您满意的效果。工作范围:办理各种证件/发票/刻章等业务 ,电话:13121228655张先生.1、全日制毕业书、自学考试、成人教育、(含专科、本科、研究生、硕士、博士)毕业生档案、英语四、六、八级证书、雅思成绩单、计算机等级、外语等级考试、并可以按客户要求制作印刷。2、项目经理证、会计、会计师、工程师、教师资格证、医师资格证、护士资格证等。3、身份证、户口、护照、香港身份证、回乡证、离婚证、结婚证等。。4、各地方车牌、行驶证、驾驶证、养路费、完税证明、年检、税讫、合格证、汽车发票等。5、房屋所有权证、房屋他项权证、国有土地使用权证、土地他项权证、营业执照等。6、并可办理各银行汇票存根、各地普通发票、建筑安装发票、机械设备发票、汽车销售发票等。QQ:1029365788工作经历:北京刻章办证1、刻章:各种公司用章,财务章,人名章等、北京诚信证件咨询有限公司面向全国专业从事刻章办证,各类毕业证(可上网查询)驾驶证(国际、国家安全)、车辆手续、各类通行证,健康卡、军队、武警与地方牌照,联系电话13121228655张先生
北京诚信证件制作公司
网址:http://www.chengxinba.cn - 2008-11-9 18:12:48 回复该留言
- 7.zhuce
- http://www.qqmy.net
- 说的不错,值得一看会继续关注,如果对北京代理记帐代理记帐感兴趣可以了解一下我的网站,大家互相学习:)5
- 2008-11-13 20:43:18 回复该留言
- 8.dsfweytr
- http://www.qqmy.net
- 说的不错,值得一看会继续关注,如果对北京代理记帐代理记帐感兴趣可以了解一下我的网站,大家互相学习:)5
- 2008-11-14 11:09:50 回复该留言
- 9.dswetwwetr
- http://www.qqmy.net
- www.qqmy.net说的不错,值得一看会继续关注,如果对北京代理记帐代理记帐感兴趣可以了解一下我的网站,大家互相学习:)5
- 2008-11-14 20:49:13 回复该留言
- 10.dswetwwetr
- http://www.qqmy.net
- www.qqmy.net说的不错,值得一看会继续关注,如果对北京代理记帐代理记帐感兴趣可以了解一下我的网站,大家互相学习:)5
- 2008-11-15 0:56:06 回复该留言
- 11.tao356se
- http://www.bjajr.com
- www.qqmy.net值得一看,会继续关注,如果对北京代理记帐代理记帐感兴趣可以了解一下我的网站,大家互相学习:)5
- 2008-11-15 13:42:50 回复该留言
- 12.www.qqmy.net
- http://www.qqmy.net
- www.bjajr.com值得一看,会继续关注,如果对北京代理记帐代理记帐感兴趣可以了解一下我的网站,大家互相学习:)5
- 2008-11-15 18:28:56 回复该留言
- 13.www.qqmy.net
- http://www.qqmy.net
- www.bjajr.com值得一看,会继续关注,如果对北京代理记帐代理记帐感兴趣可以了解一下我的网站,大家互相学习:)5
- 2008-11-15 22:33:15 回复该留言
- 14.dailijizhang
- http://www.qqmy.net
- www.qqmy.net写的不错,值得一看,如果对北京代理记帐代理记帐感兴趣可以了解一下我的网站,大家互相学习5
- 2008-11-18 9:14:05 回复该留言
- 15.www.qqmy.net
- http://www.qqmy.net
- www.qqmy.net说的不错,值得一看会继续关注,如果对北京代理记帐代理记帐感兴趣可以了解一下我的网站,大家互相学习:)5
- 2008-11-18 13:52:03 回复该留言
- 16.sgsdfge
- http://www.qqmy.net
- 说的不错,值得一看会继续关注,如果对北京代理记帐代理记帐感兴趣可以了解一下我的网站,大家互相学习:)5
- 2008-11-19 11:33:54 回复该留言





