求解答 学习搜索引擎
搜索引擎非常复杂,模块很多。按最粗的分可以分成三个模块,离线系统,在线系统,相关性。
离线系统从网络上爬数据下来,对每一个网页的质量进行评估,把质量好的数据推送给在线系统。评估主要包括:计算pangerank,去重,反作弊。
在线系统分3步:
1.拿到数据后,对数据进行建索引,对于每一个网页分配一个docID,对所有查询词建立倒排链,倒排链由所有包含这个词的网页的docID构成。索引一般10来天进行一次全量更新,每天进行小增量更新,做的好的系统还可以进行实时更新,一旦有新数据来立刻进索引,几分钟后就能检索到新数据。
2.粗排:按DF和pangeRank等指标从查询词相关的几条倒排链中海选出质量比较好的几万个doc,供下一轮精排用。
3.精排:对粗排选出的doc进行相关性算分,把分数好的前几百条结果返回给用户。
相关性:出各种feature,对这个doc按每个feature进行算分,最后得出一个综合分。涉及一大堆数据挖掘,机器学习,用户行为分析等算法。
学习搜索引擎可以从这三块入手,对系统感兴趣可以研究在线系统,对算法感兴趣可以研究相关性。
如果只想搞个玩具搜索引擎玩玩,可以先忽略搜索效果和性能,先搭一个单机框架出来。
如果想从事相关职业做出实际可用的产品的话,效果和性能是两个不能回避的问题:
1.效果的话必然需要学习机器学习,数据挖掘等算法,这方面我不是很了解,有待专业人士解答。
2.性能的话,必然需要学习分布式技术,索引动辄几十TB,单机必然是存不下的,所以得把索引切成很多片,分别存在不同机器上,然后去每台机器上搜出来把结果merge起来。这样的话分布式调度系统得有吧,分布式存储也得有吧,为了加快建索引速度mapReduce也得有吧,多台机器之间得通信RPC也得有吧,机器一多定位问题调试系统的话监控系统也得有吧。分布式,大数据是大势所趋,搜索引擎便是分布式系统的最典型应用,所以掌握一些分布式技术,了解下hadoop,zookeeper神马的还是不错的。
网站百度快照被劫持,怎么快速恢复
快照劫持就是你在百度搜索关键词出现的结果排名的快照内容不是你网站的内容,而是一些不良信息,关于bocai类等的,那么就是你的网站中招了。那么他们是怎么做到的呢?这个肯定就是你网站程序有漏洞,让黑客技术人员找到后门进入你的网站进行篡改的,他们篡改的时间一般是晚上凌晨以后,这样在百度搜索引擎蜘蛛抓取你的快照的时候就是他们篡改的内容被抓取到了,然后又神不知鬼不觉的又把你原来的TDK换回来了。这样你就会发现你的网站什么都没有变化,但是你的快照内容发生了更改,这个时候你就是丈二的和尚了。
打开首页文件,找到文件顶部title标签的部分看看有无被加密的代码,然后清除掉,然后重新上传(如果全站被黑,那就只有彻底清除了),如果清理代码过后没过多久还是被反复篡改的话,应该对网站的源码以及文件进行检查,清除掉恶意链接。如果技术不够,无法准确判断的话,可以直接找专业的网站安全公司来处理解决,国内SINE安全、绿盟、启明星辰都是比较有名的安全公司