基于ElasticSearch面向M00C的垂直搜索引擎设计与实现
发布时间:2020-06-19 23:55
【摘要】:随着教育与信息化的不断融合与发展,大规模在线开放课程(Massive Open Online Course,简称MOOC)已经成为了一种重要的学习方式。MOOC平台越来越多,所提供的课程数量也呈现出爆发式的增长。这就导致学习者需要花费更多的时间与精力在各个在线平台来挑选符合自己需求的课程。Google、百度、Bing等通用搜索引擎虽然能够提供MOOC课程的检索结果,但检索结果并不精确,还需要在繁杂的结果中来筛选所需信息,效率低下。因此,一个能够满足学习者对MOOC信息搜索的系统就变得尤为重要。本论文设计与实现了面向MOOC领域的垂直搜索引擎系统,能够满足学习者对MOOC领域更精确的检索需求,提升学习的效率。采用Python语言进行整个系统的开发,Scrapy框架对多个MOOC平台进行数据采集与抽取,使用MongoDB非关系型数据库来存储数据,导入ElasticSearch对数据建立索引并搭建分布式搜索服务器,Django来实现用户检索网站。通过对搜索引擎技术的学习和对使用者的行为分析,本系统分为MOOC爬虫模块、信息索引模块、用户检索模块,作者独立设计并完成整个系统的各个模块的开发工作,各个模块详情如下:(1)爬虫模块:针对多个MOOC平台进行数据的爬取,对指定的URL进行页面下载,提取出页面中的课程名称、课程链接、简介、教师、学校等信息。接着对获取到的数据进行处理,过滤掉不合规范的MOOC课程数据,将处理过后的数据存储到MongoDB和ElasticSearch索引数据库中。(2)信息索引模块:对完整的MOOC课程数据创建映射,进行中文分词,建立倒排索引。利用ElasticSearch模糊匹配实现搜索建议提示,多字段查找搜索功能来支持用户对课程信息的检索。(3)用户检索模块:使用Django框架开发动态网站,提供良好的人机交互页面和逻辑,方便使用者对MOOC数据进行检索,提供最近搜索历史纪录、搜索用时、课程数目、数据分页浏览等功能。检索页面返回精准的MOOC课程信息,点击课程名称即可跳转到对应的页面进行课程的学习。通过对本系统的功能及性能测试,能够满足学习者对MOOC课程领域的检索需求,简洁精确的检索结果能够方便的查看课程介绍,提升用户寻找课程的效率,具有很高的实用价值。
【学位授予单位】:北京交通大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP391.3
【图文】:
网络爬虫、增量式网络爬虫、深层网络爬虫等w。对页面的采集策略可以分为深度逡逑优先、广度优先、最佳优先。下面通过图片来说明网络爬虫的基本工作流程,如逡逑图2-1所示。逡逑>已下载的网页数据逡逑种子URL邋|逦/逡逑、逦|逦读取逡逑\逦页下载逡逑\逦/逦bSS逡逑V邋/逦URL逡逑待抓取的逦z逡逑数据拍取Z逡逑图2-1网络爬虫结构逡逑Figure邋2-1邋Web邋Crawler邋Structure逡逑网络爬虫的基本工作流程[9]:逡逑5逡逑
提升搜索体验。用户点击搜索后能够与后台索引服务器进行数据交互,对课逡逑程的信息进行多字段匹配查找,返回检索结果到前台WEB页面供用户浏览。系统逡逑的功能模块结构图如图4-1所示。逡逑—^爬虫投块逦一逡逑—:■000#rP椋螅r摷mm后理3?.置逦I设置映射j逡逑m逦.烟?—逦逦逡逑I逦?信息索引梢块邋f逦廔进行中文分词逡逑I逡逑统逦I—逡逑打逦■逦I逡逑==.)逦—逦搜索建议逡逑—?用户检索模块逦捎亲逦I逡逑^sssssissege^tisstsfs¥ssssfssfifitssgsfsfisftsstsssijssfas^3^ass!sf^s^!t!^sf¥!gfsi(isssgs(¥xfisffsix9iis99ssfii^sfiiiisss?t9sis^逡逑—逦信患浏览逡逑图4-1系统功能模块结构图逡逑Figure邋4-1邋System邋Function邋Module邋Structure邋Diagram逡逑4.3系统技术实现架构逡逑本系统采用MVC架构,前端和后端进行分离,利用浏览器来实现强大的功能,逡逑节约开发成本,服务器端采用Django框架来搭建WEB检索服务。根据MVC架逡逑构模式,依次可分为3层:视图层、控制层、数据层。视图层是用户检索的页面,逡逑可以输入检索词进行数据检索,查看检索的结果。控制层使用Scrapy框架来进行逡逑网页进行下载,再利用XPath对MOOC信息数据进行抽取,包括课程名称、课程逡逑地址、学校、教师、来源等信息。在Scmpy流水线中编写程序对数据进行处理,逡逑导入到MongoDB当中作为数据的备份。为了提高搜索服务的稳定性
本文编号:2721532
【学位授予单位】:北京交通大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP391.3
【图文】:
网络爬虫、增量式网络爬虫、深层网络爬虫等w。对页面的采集策略可以分为深度逡逑优先、广度优先、最佳优先。下面通过图片来说明网络爬虫的基本工作流程,如逡逑图2-1所示。逡逑>已下载的网页数据逡逑种子URL邋|逦/逡逑、逦|逦读取逡逑\逦页下载逡逑\逦/逦bSS逡逑V邋/逦URL逡逑待抓取的逦z逡逑数据拍取Z逡逑图2-1网络爬虫结构逡逑Figure邋2-1邋Web邋Crawler邋Structure逡逑网络爬虫的基本工作流程[9]:逡逑5逡逑
提升搜索体验。用户点击搜索后能够与后台索引服务器进行数据交互,对课逡逑程的信息进行多字段匹配查找,返回检索结果到前台WEB页面供用户浏览。系统逡逑的功能模块结构图如图4-1所示。逡逑—^爬虫投块逦一逡逑—:■000#rP椋螅r摷mm后理3?.置逦I设置映射j逡逑m逦.烟?—逦逦逡逑I逦?信息索引梢块邋f逦廔进行中文分词逡逑I逡逑统逦I—逡逑打逦■逦I逡逑==.)逦—逦搜索建议逡逑—?用户检索模块逦捎亲逦I逡逑^sssssissege^tisstsfs¥ssssfssfifitssgsfsfisftsstsssijssfas^3^ass!sf^s^!t!^sf¥!gfsi(isssgs(¥xfisffsix9iis99ssfii^sfiiiisss?t9sis^逡逑—逦信患浏览逡逑图4-1系统功能模块结构图逡逑Figure邋4-1邋System邋Function邋Module邋Structure邋Diagram逡逑4.3系统技术实现架构逡逑本系统采用MVC架构,前端和后端进行分离,利用浏览器来实现强大的功能,逡逑节约开发成本,服务器端采用Django框架来搭建WEB检索服务。根据MVC架逡逑构模式,依次可分为3层:视图层、控制层、数据层。视图层是用户检索的页面,逡逑可以输入检索词进行数据检索,查看检索的结果。控制层使用Scrapy框架来进行逡逑网页进行下载,再利用XPath对MOOC信息数据进行抽取,包括课程名称、课程逡逑地址、学校、教师、来源等信息。在Scmpy流水线中编写程序对数据进行处理,逡逑导入到MongoDB当中作为数据的备份。为了提高搜索服务的稳定性
【参考文献】
相关期刊论文 前2条
1 刁兴春;谭明超;曹建军;;一种融合多种编辑距离的字符串相似度计算方法[J];计算机应用研究;2010年12期
2 刘俊熙;盛宇;;垂直和通用搜索引擎的差异和案例分析[J];现代情报;2009年03期
相关硕士学位论文 前8条
1 李远龙;基于Scrapy框架招聘信息检索系统的设计与实现[D];西安电子科技大学;2017年
2 何彪;面向MOOC的在线学习平台的设计及应用研究[D];大连理工大学;2015年
3 李凑;基于用户体验的我国mooc学习者需求调查研究[D];江西师范大学;2015年
4 张高伟;基于ElasticSearch的分布式视频垂直搜索引擎的设计与实现[D];哈尔滨工业大学;2014年
5 吴强华;银行信贷业务管理系统的设计与实现[D];电子科技大学;2014年
6 闻峥;基于Lucene的搜索引擎优化[D];北京交通大学;2011年
7 金婵鸣;垂直搜索引擎系统的研究[D];武汉理工大学;2010年
8 隋毅;彩铃智能搜索引擎的设计与实现[D];北京邮电大学;2008年
本文编号:2721532
本文链接:https://www.wllwen.com/kejilunwen/sousuoyinqinglunwen/2721532.html