登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

支持全文检索的网络资源共享平台的开发毕业论文

 2020-02-23 18:20:16  

摘 要

利用J2EE和网页前端以及数据库和全文检索技术,本文设计和实现了一个支持全文检索的电子资源共享系统,用户可以方便地通过网页来查询平台上用户分享的网络资源和使用积分下载,同时也可以上传自己的文档来赚取积分,用户也可以方便地管理自己的个人信息和文件信息。

系统为用户在文档的获取与搜寻和分享上提供了如下解决方案:1.用户可以通过关键词或关键句对文档进行搜索,该关键词可以在文件的标题描述或者是正文内,然后对符合意向的文件进行下载操作,减少用户的文档发现成本;2.用户可以方便地在平台上分享自己的文件,填写文件信息上传文件成功后,其他用户下载该文档用户能够得到积分奖励,促进用户分享文件的积极性。

关键词: lucene;全文检索;资源共享系统

Abstract

Using J2EE and front-end of web pages and database and full-text retrieval technology, this paper designs and achieves an electronic resource sharing system that supports full-text retrieval. Users can conveniently query the network resources Shared by users on the platform through web pages and download points by using points. Meanwhile, they can also upload their own documents to earn points. Users can also conveniently manage their personal information and file information.

The system provides a solution to the user's access and search and share of a document: 1: A user can search the document through key words or key words, which can be described in the title of the file or in the body, and then download the file that matches the intended, and the user's file is reduced to the cost of discovery; 2:The user can easily share their files on the platform, and when the file is uploaded, the other users can download the file and the user can get the rewards of the rewards, the motivation for the user to share the file.

Key words: Lucene; full-text retrieval; Resource sharing system

目录

摘要 I

Abstract II

第一章 绪论 1

1.1课题的开发背景 1

1.2课题国内外研究现状 1

1.3课题研究基本内容和目标 2

第二章 相关的开发技术介绍 3

2.1网页后台 3

2.2 网页前端 3

2.3全文检索技术 4

第三章 系统的需求分析 5

3.1功能性需求 5

3.1.1一般用户需求分析 5

3.1.2管理员需求分析 6

3.2非功能性需求 6

3.2.1性能需求 6

3.2.2安全性需求 6

3.2.3可靠性需求 7

3.2.4易用性需求 7

第四章 系统的设计 8

4.1系统概要设计 8

4.1.1系统总体设计 8

4.1.2系统架构设计 9

4.1.3系统前端页面设计 11

4.2系统的一些业务机制及补充设计 13

4.2.1积分机制 13

4.2.2用户及文件的监管和审核机制 13

4.2.3系统创建文件索引的时机 13

4.3系统各功能详细设计 14

4.3.1系统用户权限管理设计 14

4.3.2用户中心设计 14

4.3.3用户个人文件管理设计 15

4.3.4文件分享设计 15

4.3.5文件下载设计 15

4.3.6全文检索设计 16

4.3.7管理员用户管理和文件管理设计 17

4.3.8管理员文件审核设计 17

4.4数据库设计 17

第五章 系统的实现 20

5.1系统开发前期准备 20

5.2系统文件结构 20

5.3系统主要功能实现 22

5.3.1系统用户权限管理及身份认证实现 22

5.3.2用户中心实现 24

5.3.3用户个人文件管理实现 24

5.3.4全文检索实现 25

5.3.5文件下载实现 26

5.3.6管理员用户管理和文件管理实现 26

5.3.6管理员文件审核实现 27

5.4系统运行截图 28

第六章 论文总结与展望 30

6.1论文总结 30

6.2论文展望 30

参考文献 31

致谢 32

第一章 绪论

1.1课题的开发背景

现代社会信息化的程度大大提高,互联网上的数字化文档如word、pdf、html等电子资源也是爆炸式增长,越来越多的人开始通过网络来获取各种自己所需要的信息资源。相较于传统的纸质资料,电子资源在保存和分享的便捷性上有着天然的优势,若能方便地检索和分享,将能够极大地促进知识的传播[1]。所以针对网络上杂乱和海量的数字化文档,开发一个便捷的网络文档检索和管理及分享平台,能够让用户在平台上高效准确查询到自己所需求的文档资源或者分享自己的文档,来满足人们对于电子文档资源的需求是一项非常重要的工作。

在这样的一个平台上,电子资源的来源非常广,数据量非常大,并且不规范.平台的核心在于开发一个搜索引擎,能够实现文档的高效查询和检索。而要达到这个目标,传统的一些检索方式如利用关系数据库存储,使用结构化查询,在数据量不大的情况下查询效率能达到预期要求,但是当数据量较大时,这种查询方式的效率就会出现很严重的问题,准确性和查询的多样化也较差。而使用倒排索引的全文检索技术[1]正好能够很好地解决这一问题。

1.2课题国内外研究现状

支持全文检索的网络资源共享系统在国外起步较早,而在目前国内外已有较多文档和电子资源分享网站。

国内的比较出名的一些有百度文库、道客巴巴、豆丁网等,用户在进行文档分享的同时还能够赚取积分,也能够在线阅读文档等。其中比较有代表性的百度文库(wenku.baidu.com)是百度发布的电子资源共享的平台,用户可共享文档,百度的审核后才能发布。这些文档可以在线阅读和下载,用户上传文档可得到奖励积分,下载标价的资源则需要花费积分。平台支持当前大部分主流文档格式,目前(2018年)平台上的文档数量已经突破了两个亿,同时,依托于百度强大的搜索引擎技术,百度文库的搜索体验很好,其准确度和匹配度以及效率较高。

国外较出名的有Scribd、Yudu Freedom、Docstoc等,其中较为代表性的Scribd(www.scribd.com)也是一个电子文档共享平台,允许用户分享文档,平台支持多种文档格式,平台会将所有文档转换为Scribd独创的ipaper格式,并且可以在线阅读,目前还支持了音频等,他们还提供了网页内嵌代码,能够将文档播放器嵌到自己的博客中去,目前Scribd也提供在线商店允许出版商出售电子书,网站的搜索体验和界面设计也很不错。

全文检索作为一个信息检索技术中心的核心部分,其倒排索引技术已经广泛地运用于国内外的各大搜索引擎中,例如baidu、google等,全文检索能够任意检索各种非结构化数据,随着技术的发展,也出现了许多的全文检索工具,Lucene[3]就是其中非常优秀的一个。

Lucene是Apache基金会下优秀的开源全文检索工具,具有良好的性能和可扩展性,提供了简单易用的索引创建、搜索搜索以及其他全文检索的接口,用于全文索引和搜索[4]。其生成的索引文件格式能够在不同的平台共享,因为其索引相对于平台是独立的,lucene还提供了一套强大的查询引擎,Lucene的出现,为搜索引擎的开发提供了许多新的可能。

使用了Lucene的比较知名的项目有 Eclipse、Jive等,还有基于lucene的许多非常优秀的全文搜索引擎项目,例如solr、ElasticSearch[5],都在业内有着广泛的应用,以ElasticSearch为例,它能够快速储存搜索和分析海量的数据,一些知名的网站如维基百科、Stack Overflow、Github都是采用的ElasticSearch搭建的自己的全文搜索引擎。

1.3课题研究基本内容和目标

本课题目标是是开发一个支持全文检索的网络资源共享平台,本系统需要构建一个全文检索引擎,能够对网络平台上的网络资源进行全文检索,以满足用户的资源管理检索和分享等需求,该系统需要具有以下功能:

首先是全文检索功能,系统基于lucene,需要能够为多种格式的文档如word、excel、pdf等常见格式的文件创建索引,为搜索提供支持,同时,系统还需要能够进行索引的搜索,从而实现文件资源的检索与访问。

其次是文档管理功能,在本系统中设计有不同身份的用户,如管理员、一般用户等,能够完成系统中文档的上传和下载、更新和维护;

最后是系统管理功能,系统需要支持系统管理员对本平台内文档进行管理以及用户进行管理和其他一些系统功能如索引的优化、文档目录的管理等。

第二章 相关的开发技术介绍

本电子资源共享系统是一个网页应用,涉及到与后台的交互,所以采用B/S的架构,采用前后端分离[6]的开发方式,分为网页前端部分和网页后台部分,系统核心是全文检索,下面其中所使用到的技术进行简要介绍。

2.1网页后台

后台开发采用的编程语言是java,使用maven进行项目的构建和管理,SpringBoot框架进行开发,底层的数据库操作是采用了持久层框架mybatis来简化数据库操作部分的代码编写,用户登录保持和身份权限管理和认证则使用到了jwt(json web token)技术来为用户生成唯一的访问标识。

系统的api是按照restful[7]规范进行编写,对于api接口有效性的测试则使用到了软件postman。

2.2 网页前端

网页前端开发使用了vue[8]全家桶(vue.js、vue-router、vuex),使用webpack进行构建和包管理[9],还使用了一些其他的库和工具,其中:

Vue.js是前google员工尤雨溪主导的优秀的开源前端框架,在本系统中用于构建和搭建网页界面。

Vue-router是Vue.js官方的路由管理器,与vue.js进行了深度的集成,在本系统中用于进行前端路由的跳转和路由守护,用来对前端页面的路由进行管理和页面权限的管理和验证,使得应用可以快速切换页面并且数据是按需加载,不会重复地加载依赖组件,从而减少系统开销。

vuex是vue官方推出的用于vue网页应用的状态管理模式,它能够集中存储网页应用中组件的状态并对此进行管理,在本设计中用来存储当前用户信息和一些应用全局的状态信息如页面自定义弹出框的状态等,能够简便地对自定义弹出框的显示和隐藏进行控制。

axios是一个http库,是基于promise实现的,在本项目中,由于vue.js没有自带的网络请求库,使用原生的js来编写ajax请求又较为麻烦,所以在项目中还使用了axios来进行ajax请求的实现。

Element-UI是饿了么公司开源的基于vue的前端组件库,使用该UI框架能够方便快捷地实现一些前端的组件和一些布局等,且具有良好的外观。在本系统中为了开发和样式设计的简便,还使用了Element-UI来进行UI的编写。

2.3全文检索技术

本系统的核心部分是全文检索,而全文检索的核心部分是靠lucene来实现,lucene是apache基金下的一个优秀的开源项目,是一款高性能的全文检索工具库,在本项目中主要使用lucene来实现简单的全文检索包括索引的构建和索引的搜索和其他一些全文检索功能。

在全文检索过程中涉及到语句的分词,本系统主要针对的是中文用户,所以需要进行中文的分词,而lucene自带的分词器对中文支持较差,经过对比后最终选择了对中文分词支持较好且使用方便简单的IK分词器[10]

全文检索过程中还需要实现对文档的内容和信息进行提取[11],lucene能直接处理的文件只有txt格式的文本文件,所以要支持其它格式的文档的全文检索,需要使用其它库来对文档内容进行抽取,在这里我们使用的同样是apache开源基金会下的内容分析工具Tika[12],它能够从不同格式的文档中提取出元数据和文件内容,将提取出的内容和信息提供给lucene的索引程序来创建索引,从而实现项目对非结构化文档的内容的全文检索,在本系统中使用了tika来对用户上传的文件进行抽取内容,然后将抽取的信息交给lucene的indexWriter来写入document的名为content的域中,之后在全文检索过程中就能很方便地获得这个信息。

第三章 系统的需求分析

3.1功能性需求

系统的用户有多种角色,包括有一般用户和管理员,一般用户能够使用系统的普通功能有搜索和个人主页等,而管理员能够使用系统高级功能对系统进行管理,整个系统的用例图如图3.1,下面就两种不同角色的用户进行需求分析

图3.1 系统用例图

3.1.1一般用户需求分析

用户所需要的功能有:登录注册、管理个人信息、分享文件、搜索文件、下载文件、管理个人文件(如修改所上传的文件信息)、查看下载记录等,下面是详细的用例描述。

  1. 登录、注册:用户能够按照系统要求在系统注册合法账号并且能够使用该账号登录进入系统。
  2. 管理个人信息:用户登录进系统后能够对自己的个人信息进行管理。
  3. 分享文件:用户能够将自己本地的电子资源上传至系统并填写相关信息分享给他人,其他用户能够搜索到该文件并进行下载。
  4. 搜索文件:用户能够在平台上使用搜索语句对平台上的公共资源进行搜索,系统会给用户返回搜索结果。
  5. 下载文件:已登录用户能够使用平台积分下载其他用户共享的文件到本地。
  6. 管理个人文件:已登录用户能够在用户中心对自己的个人文件进行管理。
  7. 查看下载记录:已登录用户能够在用户中心查看自己的下载记录。

3.1.2管理员需求分析

管理员需要的功能: 用户管理(查看用户信息、封停用户)、文件管理(查看文件信息、封停文件)、文件审核管理(用户新上传的文件需要经过审核后才能被搜索到)。

  1. 用户管理:管理员用户能够查看平台上的用户列表并对平台上的用户进行管理(封禁解封),被封禁的用户无法登录进入该系统。
  2. 文件管理:管理员用户能够查看平台上的已审核通过的文件列表并对文件进行管理(封禁解封),被封禁的文件无法被上传者进行修改,无法被用户通过搜索引擎搜索到,无法被下载。
  3. 文件审核管理:用户新上传的文件处于审核状态,管理员能够查看所有待审核的文件并对文件进行审核,审核通过的文件便处于正常状态,审核未通过的文件则被系统遗弃,用户无法搜索到也无法下载。

3.2非功能性需求

3.2.1性能需求

系统应当有良好的性能,搜索的反馈要迅速,如果系统各项操作反馈不够迅速的话将会对用户的使用体验造成极大的影响,在本系统中使用数据库的like语句来实现搜索的话数据量大的时候效率很低[13],所以需要使用全文检索技术、引入lucene来解决这个问题,并且lucene提供了更加强大和多样化的全文检索的支持。

3.2.2安全性需求

本资源共享系统的正常运行离不开良好的安全性,系统的不安全可能会导致用户的个人身份信息的泄露和其他一些的损失,所以本系统应该具有良好的安全性。

3.2.3可靠性需求

系统在运行过程中应当是稳健可靠的,系统的前端应当能够在大多数浏览器环境下正常运行,整个系统应当能够为用户提供稳定可靠的服务,用户在使用过程中也能信赖系统。

3.2.4易用性需求

系统的用户范围较广,需要满足各种用户的需求,所以系统的界面应当是简洁友好,系统的各功能的操作和使用方法应当是尽量简单易懂,减少平台用户的学习成本,系统的交互也应当简单明晰,减少用户在使用过程中的困扰,带给用户更好的使用体验。

第四章 系统的设计

4.1系统概要设计

4.1.1系统总体设计

整个电子资源共享系统的主要任务是满足用户数字化文档的存储/管理/和查询的需求,搭建平台,能够让用户分享自己的文档,同时也能下载别人分享的文档,并且系统为用户提供全文检索的功能。系统总体采用B/S架构,

图4.1 系统结构图

web端分为普通用户web端和管理员web端以及后台部分。

普通用户web端实现功能有:1.登录注册;2.文档的搜索查看;3.文档的上传下载;4.个人上传和下载文档记录的管理;5.个人信息的管理。

管理员web端实现的功能有:1.登录;2.用户管理;3.文件管理;4.文件审核等。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

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

企业微信

Copyright © 2010-2022 毕业论文网 站点地图