早在06年10月份【1】,Google就推出了自定义搜索引擎,到了07年11月份【2】,又推出了该项服务的多语言版本。现在,这项服务已经被使用到了成千上万的网站中去了。相信大家已经发现了,很多的WordPress博客也悄悄换上了Google搜索。就我个人熟悉的几个名博或朋友,如水煮鱼,阅微堂,stephen,侠姐等等早就已经是Google自定义搜索的用户了。那么,我,或者说作为读者的您,是不是有必要换上Google自定义搜索呢?又该如何操作呢?本文带给您Charles对此的理解。
为何使用Google自定义搜索?
减少数据库查询?使用Google搜索的话,当然可以减少对自己博客服务器的查询次数,但是作为一个普通博客,每天能有多少人去你的博客搜索呢?5,000人够多么?50,000人又如何,这确实是服务器的负载,不过这对于服务器来说,不是什么很重的负载,毕竟一台主机上绝大多数人,达不到5万这个量级的。不过,能省则省,何乐不为?
速度更快?对于一台高性能,低负载的博客主机来说,Google的优势并不明显,毕竟1s和0.8秒的差距不是什么人可感知的差距。但是,对于某些架在国外主机上的博客来说,对于某一部分访问不畅的用户,Google搜索的速度绝对要快于博客主机本身搜多的速度,毕竟Google服务器遍布全世界,总能有一台相对快的对用户请求做出响应。
结果更精确?哈哈,这个说法其实是有相当问题的。因为,Google对你的博客的搜索结果,直接取决于对你博客的收录数量,如果某篇文章根本没有收录,就不可能搜出来,那么谈何精确呢?Google连你博客的一个完备的数据集合都不具备。另外,从时效性上来看,Google的搜索也要落后,你认为Google对你博客的抓取频率是多少呢?无论有多快和WordPress博客本身还是有区别的。
能整合广告?能赚钱?呵呵……对此,我只能苦笑了。
好吧,貌似我已经把必须使用Google搜索的理由都推翻了,至少,从我自己的视角来看,使用Google搜索的必要性是不存在的。得出这么一个结论,是不是让诸位看官有点吃惊了?不过呢,我个人还是选择了整合Google搜索到我的博客。接下来,我来谈谈我是怎么想的。(以下内容,不喜欢的可以跳过)
首先,请大家去看看WordPress里面关于搜索的那段代码是怎么写的。那段代码在wp-includes/query.php中。wp2.5.x的是966行附近。wp2.6.x是979行附近。wp2.7.x是1740行附近。当然,内容是相当雷同的。简单说下,首先处理查询字符串,怎么处理的,我也看不大明白,结果我是知道的,查询内容被分解成了一个个关键词。然后,生成SQL语句中的条件字符串,类似于post_title LIKE %term_i% OR post_content LIKE %term_i%,对于每一个关键词i来说,都要生成这么一个串,于是乎,如果用户在搜索框中写了一长句话的话,那么结局可想而知了,博客主机的MySQL服务器将运行一个十分冗长的SQL语句。其效率也可想而知了。
其次,不知道有没有高手了解数据库的原理,即,这个LIKE操作,到底是怎样搜索的呢?就我所了解到的非常有限的知识来看,这个LIKE是使用了近似于正则表达式的方法,逐条检索数据库中的每条记录的。好,问题来了,现在数据库里只有一点点数据,1,000篇文章够不够多?有这个量的人很少吧,哈哈。10,000又如何?博客很难达到那个量的。所以,WordPress的搜索功能,看起来总是那么迅速。但是,WordPress博客自带的数据库搜索的发展趋势是明确的,文章越多越长,速度越慢。数据库里的内容本来是没有顺序的,索引给数据库带来了高速检索的机制(排好序的数据),但是,大家从代码里可以看到,这么样子写查询,跟索引是八棒子打不着的。
那么,搜索引擎的工作原理是如何的呢?第一步,蜘蛛爬取网页,博客的每个页面,由Google蜘蛛统一抓取到Google的服务器上;第二步,对所有得到的网页的内容建立索引,这里所说的索引,是搜索引擎内部使用的索引,非是数据库那种索引。基本上来说,一篇文章到搜索引擎里面,所有的词语会被切割开来,这个过程叫做分词,然后对每个词语建立一个索引,非常庞大的工程吧,简直令人叹为观止的庞大,因为全世界的网页约有600亿之多。而且,一般来说,搜索引擎会建立倒排索引(reverse index),简单说,就像英文技术书后面的Index一样,某个词,出现在第几页,第几页。;第三步,就是等待查询请求了,如果请求来了,搜索引擎就会去它自己建立好的索引中去查找,然后返回结果集合给用户;第四步,对检索结果进行排序,一般来说,搜索引擎的排序是按照跟关键词相关的程度来排序的,一篇出现WordPress十次以上的文章,肯定是比只出现了一次的要更与WordPress这个词有关了(对于数据库来说,根本没有这个步骤,你查询密码破解,很有可能查到一篇《黑客帝国》的影评);第五步,这个步骤只对自定义搜索引擎才有,就是对结果集合进行过滤,将不属于你的域名下的结果全部清除。
搜索引擎是多么一个让人叹为观止的系统啊,一次看似简单的查询,有早先蜘蛛的辛勤工作,然后加上建立索引,最后是成千上万台机器去检索那些索引,一次搜索是无数计算机告诉计算的结果,单单冲着这个,我就要选用真正的搜索引擎了,因为,这真的很伟大。
最后,是搜索引擎对于查询字符串的分析能力,不知道大家知不知道,可以在Google搜索框中敲入及其复杂的查询语句,无论是整个句子,还是布尔表达式,或者许多奇怪的Google语法,这种竭尽全力去理解用户意图的贴心做法,绝对不是WordPress内部那两个正则表达式可以比拟的东西。
综上所述,使用Google搜索,可以获得更相关的搜索结果,可以更好的理解用户的查询,可以调动更多的计算机工作,满足你更大的支配欲(O(∩_∩)O)。所以,我还是选用了Google搜索。当然,对于我个人,还有个原因,我是Google Fans,你看我的主题,使用Google搜索才是理所当然的事情嘛。
如何在WordPress中整合Google自定义搜索引擎?
看看参考【3】,你可以从宏观上把握住这个整合的总体流程。而参考【4】,可以给你一个整合操作的详细指导。
参考文章:
【1】Google自定义搜索引擎重大更新:可自动搜索相连网站
【3】我爱水煮鱼:《整合Google自定义搜索到WordPress中》 :这是一篇简单介绍如何整合Google搜索到WP博客的文章,不过,这篇文章只有简单的1,2,3,... 基本没有什么可操作性。不过讲解的步骤是对的。
【4】網生@誌 | zEUS.'Blog:《给博客添加 Google 自定义搜索》 :这篇文章介绍了整合Google搜索的详细步骤,包括申请,修改代码,等等,并且给出了代码范例。可操作性很强。
很新颖的角度,也更加坚定了我扔掉 WP 内置搜索的想法。
我一直的想法是,二者兼备。不过,发现实现起来有一定的麻烦,实在是太懒了,就没有用。其实wp那个搜索,虽然不准,但是在博客这么点文章里面,也还准确度很高了,关键是它结果可以按照时间排序,这点有时候也很重要的。
有点难诶。。不过我觉得读者真的想在你的博客里面搜索东西的话不会怕麻烦去google自己搜索的。。所以这个用处不是很大
原来你是那种不怕麻烦的用户啊,那太好了!要是所有的访客都是你那样的人,该多好啊~~
因为如果要找啥资料肯定是自己很需要的,自己需要的当然不怕麻烦了。。。谁会无聊去搜着玩呢
我自己经常会记得某个人的博客里提到了某篇文章,用到的时候,就直接去他博客搜了,比如在老肥那里搜favicon教程,或者在水煮鱼那里搜某个插件,我觉得搜索是个很帅的功能,很有用处的。难道就我有这种需求么?
利用Google自定义广告赚钱时搞不了多少的,但是里面放入广告的另外一个功能时统计有多少人用过你的搜索栏,呵呵!!
wordpress自带的搜索效率低就算了,关键是找不到我想要的东西!!这点是没法接受的。。。
本来就有统计的吧,跟广告关系不大,我就没有广告,统计也是有的。
颇有道理,不过我很懒……
没事,同懒,我一般把有趣的东西记录在一个单子上,哪天心血一来潮,就做那么一件。
我打算把Google自定义搜索整合到页面里面,做得越像自带搜索越好。。。
可惜一直没这功夫来弄
光是整合进去,是一件非常简单的事情,但是要修改样式啥的,唉,我不擅长这个玩意呢
我就是说样式啊啊啊~
嗯,我那也用上了。
PS:我是个业余的Google Fans 哈哈。。。
哈哈,你真有意思,你言下之意是我是个专业的Google Fans咯?难道真有这种专业么?哈哈,如果那样,我倒是非常乐意成为一个专业的Google Fans呢。
卖链接之类,不会给K吧?
K的就是卖链接的小盆友,Sivan MM可要小心了
那我还是不用了= =我弄了那个ask2link了……
链接是搜索引擎用来判断一个网页权重的重要手段,买卖链接行为,等于是在干扰自然形成的网络结构,使得最终的结果变得不准确,这种做法,降低了搜索结果的相关度,是对搜索引擎用户体验的极大伤害。按照一般的逻辑,损害自己客户的利益,就是对自己公司利益的损害,所以,如果是我,我也会坚决惩罚这种做法的。
卖点小钱啊,而且一般注明赞助链接之类的。我觉得比满屏广告要好呀。
前几天在Google的博客上看到不一定所有卖链接都会被K,只要你放的链接有nofollow标签就可以。。但是方式了nofollow标签谁买你的啊,哈哈!!
哪天被GG给K了,自己还不知道= =可惨了
我觉得Google作为一个知名大公司,不会胡乱K人的,前些天看了Google关于惩罚问题的一些声明,觉得Google还是很宽容的。所以,对于一些原创或者非原创博客来说,被K的风险并不大的。
有道理~~对于个人Blog而言,那点时效性的欠缺不算什么...何况我觉得Google的收录速度还是蛮快的。哈哈。
其实实际使用的体验式,Google搜索的速度还是很快的。关键是它对查询处理的比较好,而且结果还可以排序,想想伟大的PageRank让多少Blogger魂牵梦萦啊。哈哈……
嗯...PageRank可是身份的象征美刀的源泉...哈哈。
我虽然也加了,但很少用。
噢,你的意思是说,上你博客的同学们都不使用那个搜索功能么?