craler)服务、索引服务、缓存服务、日志服务等几大模块,各模块之间互相影响,构成了整个搜索引擎体系。
从开发量上,技术难度是远远大于目录式检索技术的。
首先说网络爬虫,也称网络蜘蛛(eb sider),这项技术是基于eb的自动化浏览程序,通过网页链接(url),爬虫不断的通过互联网中获得新的网页数据,下载页面数据形成后台数据库。
可以说,网络爬虫抓取数据是搜索引擎工作流程的第一步。
爬虫的体系架构直接关系到搜索引擎每天数据的采集量,而抓取策略则关系到搜索结果的数据质量,数据的更新策略则关系到系统资源的利用率。
这只是第一步,采集了大量数据信息之后,还需要通过自然语言处理(nl),将文本信息分解为结构化数据和价值性数据。
这里面就又存在一个问题,目前国外的搜索引擎都是英文分词,而中文比较特殊,最小单位是字,但具有语义的最小单位是词。
所以,在中文分词这一部分,就需要技术团队单独进行开发。
通过建立词库、采用条件随机概率分布模型、词性标注、语义相似度、已存句法分析、情感倾向分析等,通过各种模型判断,让程序理解抓取到的关键词中文的语义,才能提高搜索的准确性和查全率。
这还只是其中比较小的开发困难。
比如,搜索引擎的核心就是通过海量数据抓取后的快速检索,而抓取的数据越多,当庞大的数据存储在数据库里,就需要构建快速存取数据的分布式存储架构。
再比如,为了让用户在最短的时间内获得想要的搜索结果,就需要后台系统不断的执行数据抓取和建立索引等操作。
这就需要建立分布式实时计算系统,以及对索引结构的构建……
王川估计也是最近开发中有些郁闷了,一说起来就滔滔不绝。
隋波虽然不太懂他说的一些技术术语,但毕竟前世作为用户也使用了0多年的搜索引擎,接触的多了,也了解一些基本的知识。
他安静的听着王川不断的讲述团队面临的一个个困难,又是怎么想办法克服的。
不时提问两句,显得听的很认真。
nle和百度是有哪些创新的举措,才一举成功的?
印象最深的,就是那句“百度更懂中文”,这应该就是刚才王川所提的中文分词了,这块王川已经考虑到了。
至于是不是更进一步,先弄个智能输入法出来?……
现在团队的研发压力已经很大了,暂时先略过不提。
还有就是百度快照,不过好像这个功能虽然对用户而言很有价值,但争议很大……
nerank技术。
这是一种根据网页之间的链接结构来评价判断网页重要性的排序算法。
想到这里,隋波就提了一下,是否在搜索结果的排序算法上,可以采用这种模式?
从网页的链接数量、权威性、主题相关性、网页内容的匹配性等多个方面,综合分析,进行搜索结果的排序。
王川听了以后若有所思“这个算法我回去研究一下,应该没问题。”
隋波笑道“技术上我没办法给你太大的帮助,不过我可以从公司激励政策和后勤上为团队鼓劲!
你回去和大家说一下,搜索引擎项目的团队项目奖金定在0万,而且根据每个人的表现,到时候还有个人奖励。
我已经让清泉给你们做好后勤,每天会定时让送餐厅送饭菜过来。
另外给你们弄一个休息间,里面准备好啤酒、咖啡、饮料和小吃,保证供应。
嗯……,再让她给你们办公