基于Docker的娱乐资源搜索系统

 2022-01-17 11:01

论文总字数:24408字

目 录

摘要 1

Abstract 2

1 绪论 3

1.1 项目背景及意义 3

1.2 国内外研究现状 3

2 相关技术介绍 4

2.1 Docker 4

2.2 Solr全文检索引擎 4

2.3 Redis简介 5

2.4 前端框架vue.js 5

2.5 LAMP架构与PHP 5

3 系统分析 6

3.1 功能需求分析 6

3.1.1 需求调查报告 6

3.1.2 需求用例分析 8

3.2 可行性分析 11

4 系统设计 11

4.1 系统功能整体设计 11

4.2 详细设计 12

4.2.1 前台网站 12

4.2.1.1 注册与登录 12

4.2.1.2 资源搜索与结果展示 12

4.2.1.3 个人主页 13

4.2.2 后台系统 14

4.2.2.1 系统管理 14

4.2.2.2 用户管理 14

4.2.2.3 资源管理 15

4.3 数据库设计 15

5 系统实现 17

5.1 前台网站 17

5.1.1 搜索模块 17

5.1.2 下载模块 19

5.1.3 分享与评论模块 21

5.2 普通用户后台系统 22

5.2.1 注册与登录模块 22

5.2.2 个人主页模块 26

5.3 管理员后台系统 27

5.3.1 Docker容器管理模块 27

5.3.2 爬虫资源管理模块 28

5.3.3 用户管理模块 29

6 总结 30

参考文献 30

致谢 32

基于Docker的娱乐资源搜索系统

莫俊

,China

Abstract: With the rapid development of the Internet, the use of computers is becoming more and more popular. Many users need to search for various entertainment resources for viewing, learning and use. The drawbacks of conventional search engines due to resource copyright constraints are reflected in the low precision of resource search, the low quality of resource information, and the low number of resources .This system is designed to build a Docker-based, full-text search engine using Solr, Redis, a non-relational database, as the system cache, LAMP as a back-end technology framework, collecting Internet resource data for classification and integration, targeting entertainment resources (movies, TV shows, novels). , Music, BT Seeds/Magnetic Links, etc.) Provides a precise, fast, high-quality search system for entertainment resources .The front-end adopts the most popular MVVM framework Vue.js. The page adopts the new HTML5, fast rendering and providing a high-quality operation interface. It implements a series of functions such as searching resources, sharing resources, downloading resources, reviewing resources, and managing the background of the system.

Key words: Entertainment resources; Docker; Solr full-text search engine; Redis; LAMP architecture; Vue.js

1 绪论

1.1 项目背景及意义

随着互联网的翻天覆地地快速发展,计算机使用逐渐普及,闲暇与饭后之余,许多用户需要搜索各种娱乐资源信息进行观看,学习和使用。仅仅通过常规的搜索引擎,搜索出的资源信息往往不尽人意,因为搜索引擎所兼顾到的是整体的一个搜索方向,所提供的某一方向的信息是有限的。所以,仅仅通过常规搜索引擎所带来的弊端就是资源搜索精准化较低,资源质量不尽人意,资源数量较少,并且搜索出的资源可能还具有版权被各大平台所分割,导致用户想搜索到精确并且高质量的资源难度较大。 用户也许在搜索到资源之后,由于版权等原因频繁在各大站点切换搜索,浪费时间和精力。所以,本选题的目的在于构建出一个基于互联网数据的整合,针对娱乐资源做出精确化、快速、高质量的娱乐资源搜索系统,并且允许用户提交资源信息,通过审核即可将资源加入资源库,丰富资源库。意义在于使用户避免繁琐操作,能够在短时间内、快速、精确地搜索到高质量娱乐资源。

本设计旨在构建关于娱乐资源搜索系统站点,用户使用浏览器浏览此站点,输入想要搜索的关键词,站点经过搜索会给出相应资源的下载或者浏览的链接详情,可以对资源信息进行评论、点赞、收藏、分享等功能。此外,用户可以通过手机号、邮箱等注册方式成为本站会员,即可享受收藏资源信息、提交资源信息、反馈站点漏洞信息等功能,提交资源信息通过审核后即可加入资源搜索库。最终让娱乐资源搜索不再困难化,使资源信息变得更加精确化,资源质量更高,资源信息更加丰富。

1.2 国内外研究现状

目前国内关于资源搜索的系统其实近几年才刚开始兴起,但是由于该类系统在做好相关搜索的同时,想要盈利相对困难。因为数据都是基于互联网爬虫从四面八方的站点爬取,不乏有时会有版权争议。所以大多数的站点,也只是存储相关链接,版权归其所属人拥有。但是当某些提供本类资源的站点因为某些故障而瘫痪的时候,爬虫无法工作,导致资源库更新缓慢,更致命的是该站点直接宕机,存储在该站点的资源将会无法下载和观看。想要做好版权保护又要提高资源搜索效率和质量,两者较难统一。并且随着各大网盘接连关闭,也导致该搜索类型站点难以生存。因为国内外法律以及网络原因,国外一般也会有提供此类服务站点,大多数是以BT 种子的形式作为资源的传播者,还有拥有的版权众多的视频站点也会提供此类服务。但是随着互联网快速发展,国家的新政策,针对于音乐等资源不提倡只授权给一个平台版权,这样就会大大简化了版权的争议问题,资源的来源也会更加统一。相信用户对需要高质量,精准化资源搜索需求越来越迫不及待,市场需求量很乐观。通过把资源信息等版权分发给众多的提供商,能避免单版权资源信息的垄断,也对用户的搜索带来便利。

2 相关技术介绍

2.1 Docker

(1)Docker简介

Docker 是基于Google谷歌的Go语言开发的一个基于 Linux Container 的高级容器引擎,其源码可以在Github上找到并且可以申请参与此开源项目[1]。截至当前,已经有很多相关项目和应用,逐渐融合并且形成了 Docker 发展的生态圈[16]。Docker 的最初目的也就是将各种应用程序和他们所依赖的运行环境打包成标准的容器镜像文件,也就是术语container/image,进而发布到不同的平台上实现跨平台地运行。

(2)Docker优点

开发过程中使用Docker容器的优势可分为下面列举的几要点:

针对在虚拟化技术化方面:在 Linux的容器之中,cgroups用来取消对于物理机的资源限制,namespace命名空间来做资源的相互隔离作用。与 KVM和 Xen 相比之下,Docker 显得更加灵活,快速以及轻巧,常规虚拟机的启动时间甚至在分钟级,然而对于容器的启动和使用只在秒级之间[13]。Container方式的 PaaS 搭配和组合使用显得更灵活和多样性:开发者用户可根据自己的实际业务需要来组装自己的 PaaS,甚至在container之中进行排列组合地使用,增加系统的功能多样性。

针对于Linux Container 的便携性而言:Docker决定其构建出的环境难于分发和标准化管理进程,应用容器启动在秒级,跨平台,轻量级的优点,得到软件开发业界青睐。

2.2 Solr全文检索引擎

Solr的全称是Search On Lucene Replication, 2004年秋CNET计划开发出为企业内部网站提供搜索服务的产品,取名为Solar, 2005年完成并投入使用,2006年初CNET把Solar无偿转给阿帕奇,并正式命名为Solr, 2007年初纳入Lucene子项目,第一个正式版本1.2版正式发布[18]。到目前为止,最新版本的Solr是在2013年1月发布的4.1.0版,由于开始写作论文的时候发布的稳定版本是4.0版,并且修改升级部分并不多,所以在研究部署写作论文是基于4.0版[15]

Lucene是一个基于Java语言所编写和属于Apache下开源的全文检索JAR包,能提供全文检索功能的使用,但不是一个完全的搜索服务,Solr是一个基于Lucene作为底层支持,并且向外提供Restful API的独立的企业级搜索的全文检索服务器,是一个支持各种不同前台开发语言的搜索框架 [18]。通过HTTP调用并且指定返回数据格式即可得到数据,如指定常见的XML或者JSON的数据传输格式[9]

Solr是基于Java Lucene的搜索进行管理调用方式,将交互接口封装成REST模式的搜索框架,是一个web搜索服务器,用户使用HTTP方式的POST/GET方式与Solr进行交互[2]。Solr通过http协议的post请求修改更新索引中数据,通过get请求查询索引中数据,这点与jdb。不同[2]。外部应用程序提交http请求给tomcat.jetty等服务器, Solr通过servlet更新或返回索引库中数据[6]

2.3 Redis简介

Redis是Remote Dictionary Server的缩写,从Redis官方文档[as]给出的具体定义来看: Redis数据库是一款基于开源的、高性能的键一值存储与计算机内存当中,它不仅仅是简单的Key-Value数据模型,Redis支持许多的数据类型和数据结构,如集合、队列、栈等等[3]。Redis不仅只是一个键值对的存储系统,与市场上的Memcached同类型数据库相比之下,它所支持存储多种的数据类型,包含:string(字符串)、list(链表)、set(集合)、zset(有序集合)、hasp(哈希表)等常见数据类型 [17]

2.4 前端框架vue.js

Vue.js是一套渐进式去构建用户界面的前端基于Javascript框架。与其他重量级框架如谷歌主导的angularjs、Facebook主导的React不同的是,采用自底向上增量开发的设计模式是Vue.js的特点[11]。Vue.js 的核心只关注视图层,所以CDN引入其脚本文件较小,入门门槛低并且非常容易学习,非常容易与其它库或已有项目整合和配合使用[5]。另一方面,在Node.js平台依赖NMP支持Vue-rouer以及采用axios的ajax请求[11]

剩余内容已隐藏,请支付后下载全文,论文总字数:24408字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;