论文部分内容阅读
土豆网是国内最早开展视频分享业务的网站。土豆网经过了几年的发展,目前已经发展成为每天有1亿多次Page View(简称PV)和几万个视频上传的视频网站。在土豆网上,每天都有大量的用户上传视频节目,到目前为止土豆网上已经拥有了2000多万的视频节目。这些节目每天大约被观看8000多万次,用户在观看视频前,最重要的是要能够找到自己想要看的视频,这就不得不依靠网站的视频搜索功能。本论文首先概括和介绍了一些搜索引擎相关的技术,说明了垂直搜索引擎的概念。重点介绍了Lucene这个开源的搜索引擎的开发框架。简单说明了采用Lucene进行索引和搜索的基本过程和相关的API。中文分词是搜索引擎中比较重要的部分,本文分析了正向和逆向的最大匹配分词以及基于统计的分词方法。本文的重点是对视频搜索引擎的架构进行了详细的设计和实现。将整个系统按照模块划分为视频搜索portal、视频搜索查询、视频数据索引三部分。然后对系统进行了分层的架构设计,整个系统总共分为5层,包括:数据库层、索引层、查询层、portal层以及页面缓存层。其中页面缓存层采用开源的Squid服务器进行实现请求处理和缓存的功能,同时采用Squid的sibling的运行模式实现负载均衡。对于核心的索引层、查询层和portal层进行了详细的处理流程的分析和设计。对不同层次之间的通信方式和数据交换格式都进行了专门的设计。在视频搜索引擎的实现方面,本文采用Java进行了主要的功能模块的开发。采用Tomcat作为web容器,memcached作为内存缓存服务器,还有MySQL数据库服务器。在索引和查询的这两个过程中都非常依赖中文分词技术,本文采用了正向最大匹配的分词算法。对于日期、中文数字、繁体字、特殊字符都进行转换,使用自定义的精简的词库进行了中文分词算法的实现。对于视频搜索结果的排序,本文设计和实现了一套使用视频相关的播放次数、上传时间、被评论的次数等多重指标进行综合权重计算的排序算法。最终成功地设计和实现了一套完整的视频搜索引擎系统,为土豆网提供了强大的视频搜索功能,满足了用户搜索视频的需求。经过反复的设计和实践,整个视频搜索引擎系统逐步的稳定和完善,中文分词工具包的质量也达到了比较高的水平,视频排序算法的实现为整个搜索引擎质量的提升起到了非常重要的作用。系统的架构也在实践中得到了检验,在每天几千万的访问情况下,系统能够非常稳定的运行。目前,土豆网每天有1500万次的视频搜索,通过视频搜索功能带给网站1000多万的播放次数。土豆网的视频搜索系统既方便了用户,也为网站带来了可观的点击次数和播放量。