无论是国外的Lycos、AltaVista、Infoseek(搜信),雅虎搜索引擎;还是国内搜狐推出的所谓全中文搜索引擎,都还是以人工分类目录为主的网站检索服务。
说是搜索引擎,其实更像是目录导航网站……
尽管其中一些搜索引擎已经有了网页关键词检索、用户点击量排序等一些创新,但本质上,还是需要大量的人工编辑的目录式搜索引擎(DirectorySearchEngine)。
而隋波希望王川团队开发的,则是全新的,通过技术程序,自动在互联网上通过超链接网页进行全文检索的机器人搜索引擎(RobotSearchEngine)。
这样的话,就需要从头做起,开发一整套完整的技术体系。
其中包括网络爬虫(WebCrawler)服务、索引服务、缓存服务、日志服务等几大模块,各模块之间互相影响,构成了整个搜索引擎体系。
从开发量上,技术难度是远远大于目录式检索技术的。
首先说网络爬虫,也称网络蜘蛛(WebSpider),这项技术是基于Web的自动化浏览程序,通过网页链接(URL),爬虫不断的通过互联网中获得新的网页数据,下载页面数据形成后台数据库。
可以说,网络爬虫抓取数据是搜索引擎工作流程的第一步。
爬虫的体系架构直接关系到搜索引擎每天数据的采集量,而抓取策略则关系到搜索结果的数据质量,数据的更新策略则关系到系统资源的利用率。
这只是第一步,采集了大量数据信息之后,还需要通过自然语言处理(NLP),将文本信息分解为结构化数据和价值性数据。
这里面就又存在一个问题,目前国外的搜索引擎都是英文分词,而中文比较特殊,最小单位是字,但具有语义的最小单位是词。
所以,在中文分词这一部分,就需要技术团队单独进行开发。
通过建立词库、采用条件随机概率分布模型、词性标注、语义相似度、已存句法分析、情感倾向分析等,通过各种模型判断,让程序理解抓取到的关键词中文的语义,才能提高搜索的准确性和查全率。
这还只是其中比较小的开发困难。
比如,搜索引擎的核心就是通过海量数据抓取后的快速检索,而抓取的数据越多,当庞大的数据存储在数据库里,就需要构建快速存取数据的分布式存储架构。
再比如,为了让用户在最短的时间内获得想要的搜索结果,就需要后台系统不断的执行数据抓取和建立索引等操作。
这就需要建立分布式实时计算系统,以及对索引结构的构建……
王川估计也是最近开发中有些郁闷了,一说起来就滔滔不绝。
隋波虽然不太懂他说
请收藏:https://m.wjask.com
(温馨提示:请关闭畅读或阅读模式,否则内容无法正常显示)