elasticsearch的搜索引擎
基于elasticsearch的搜索引擎互联网随着时代的进步而迅猛发展,逐步的成为网络新时代获取与交流信息的最大媒介,互联网的发展离不开搜索引擎的支持,网页在互联的大网中需要通过搜寻推广的方式将网站页面通过传输让用户搜寻查找到,而传统的搜索方式,已经没有办法满足使用者对网页的需求,因需求产生的专业搜索网站,通过收集存储网页信息数据,对数据进行统一的管理使得用户可以进行需求下的对应网站搜索,在此同时也有利于网站建设者对于网页的推广和改进维护而国内现存的搜索引擎系统,由于竞价广告排名、资源粗糙,数据陈旧,对用户缺乏良好的用户体验,杂乱的广告排名甚至造成恶劣的社会影响。本选题运用Scrapy框架、Django框架拥有良好的扩展接口和结构化数据的提取,在elasticsearch上由效的减少广告排名提高使用者交互体验,并有利于开发者对数据的管理和搜索引擎的优化与扩展。
目录
一、引言 1
(一)开发背景 1
(二)选题意义 1
(三)设计目标 1
(四)开发软件 2
二、网站分析与爬虫设计 4
(一)网站分析 4
(二)爬虫设计 6
三、elasticsearchrtf与Django搜索界面实现 13
(一)、elasticearchrtf 13
(二)、Django搜索界面实现 13
四、系统测试 23
(一)测试环境 23
(二)测试过程 23
五、结束语 24
致谢 24
参考文献 25
一、引言
(一)开发背景
搜索引擎作为新时代获取信息的重要途经,是信息的传播和获得的主要媒介,随着互联网不断发展,信息的有效提取、索引,数据的存储,处理,也愈发的重要,也正因如此对搜索引擎的跟高需求,也更加明显,从分类目录索引的第一代搜索引擎,到现今第五代基于物联网的搜索,用户对搜索引擎的需求和要求进一步提高,然而国内的互联网搜索引擎存在竞价排名,虚假宣传,和数据陈旧等多方面的问题,用户交互感受存在缺失,使用体验不太良好。因此需要设计一款满足用户需求的,有良好交互体验、随技术发展具有良好扩展性的搜索 *好棒文|www.hbsrm.com +Q: #351916072#
引擎。目前Scrapy爬虫框架在编写爬虫非常普及,Django Web框架在数据的处理和交互界面也拥有良好的体验感受,完善的框架基础可用作项目设计之中,作为企业级的elasticsearch搜索服务器具有实时搜索,稳定,可靠,快速,安装使用方便的优异特点,本项目引擎具有良好的开发运作的可行性和市场远景。
(二)选题意义
毕业设计是大学生活里对自己最后一份答卷,是对自己三年的大学学习与生活的检阅,考验学生在学习方面的学习能力和在社会生活中对生活的感知理解,让每位同学对自己的学习程度,生活理解方面具有更深刻的理解。在选课的同时,也是为自己寻找到下一步,甚至是未来学习的方向,让每位学生在毕业来临之际,对自身有一个更高的要求,我选定此课题,不仅仅是为了完成最后的毕业设计,也是对自己过去梦想的一种实现完成一个以用户体验和健康完善数据存储的搜索引擎,也是对即将毕业的自己的肯定和鼓励。
(三)设计目标
Scrapy,Django框架的elasticsearc搜索引擎,按目标实现用户在web端的数据索引获得。主要设计目标一是从互联网网站中获取数据和数据的保存,由引擎对数据解析,用户通过网页交互界面实现对数据信息的检索获得,用户搜索的同时可以提供搜索建议、以及用户的搜索记录。
(四)开发软件
1. JetBrains PyCharm 2019.1
JetBrains PyCharm是由JetBrains打造的一款Python IDE集成开发软件。具有强大的自定义和可扩展性,它的各个版本都拥有高度一致的开发GUI,并内置集成了VIM,和其他强大的功能,对于本课题,它提供了良好的Django开发功能,便于Django框架的开发。
2.Python语言 3.7
Python语言简单简洁易懂易学具有很好的可移植性,因为它的开源性,但正因如此它没有很好的加密性,有用很多使用性较高的第三方库,运行速度比较缓慢。
3.Django
开源代码框架,拥有一流的url设计,支持多语言应用,结构简单,用户通过页面访问url,url控制器将url地址匹配对应view视图然后通过model从数据库获取数据将数据返还给视图,视图将展示数据传给template及我们网页使用的html文件。Django结构如图11。
图11 Django结构图
4.Elasticsearch
基于Lucene开发的分布式多用户的全文搜索、结构化检索和分析的引擎,是目前使用最广泛开源搜索引擎之一,本设计使用elasticsearchrtf中文版并结合elasticsearchhead,kibana,nodes等插件结合运用来进行网页数据的存储查询。
5.Scrapy爬虫框架
Scrapy是基于python语言开发的高层次的屏幕抓取和web抓取,抓取速度快,并且可以从web页面提取结构化数据。在此框架中Engine引擎负责数据和信号在各个模块之间的传输,并被scheduler调度器的“指挥领导”存放请求,通过下载讲请求返回给引擎,再通过编写的spider进行数据的提取和url的提取,把提取的url传递给engine。数据通过scrapy下的Item和Pipeline管道进行数据的处理,在实现强大功能的同时可自定义下载扩展,设置代理等等。其工作流程流程如图12。
图12 Scrapy工作流程图
二、网站分析与爬虫设计
(一)网站分析
1.首先对所要爬取的网站进行分析,了解网站主体结构和网页规则。网站结构代码图21。
图21网站主题结构
网站文章全部存放在http://web.jobbole.com/allposts/页面下,通过class=”post floatedthumb”保存。网站结构代码如图22
图22 网站结构代码
通过网站结构,确定我们所需要提取的信息,网站链接地址,网站标题,网站内的文章主题,发布时间和评论,收藏点赞数,和标签信息。构建数据库的逻辑结构,数据库设计如下表21。
表21伯乐在线文章表(jobbole_article)
字段名称
类型
长度
可否未空
约束
含义
title
目录
一、引言 1
(一)开发背景 1
(二)选题意义 1
(三)设计目标 1
(四)开发软件 2
二、网站分析与爬虫设计 4
(一)网站分析 4
(二)爬虫设计 6
三、elasticsearchrtf与Django搜索界面实现 13
(一)、elasticearchrtf 13
(二)、Django搜索界面实现 13
四、系统测试 23
(一)测试环境 23
(二)测试过程 23
五、结束语 24
致谢 24
参考文献 25
一、引言
(一)开发背景
搜索引擎作为新时代获取信息的重要途经,是信息的传播和获得的主要媒介,随着互联网不断发展,信息的有效提取、索引,数据的存储,处理,也愈发的重要,也正因如此对搜索引擎的跟高需求,也更加明显,从分类目录索引的第一代搜索引擎,到现今第五代基于物联网的搜索,用户对搜索引擎的需求和要求进一步提高,然而国内的互联网搜索引擎存在竞价排名,虚假宣传,和数据陈旧等多方面的问题,用户交互感受存在缺失,使用体验不太良好。因此需要设计一款满足用户需求的,有良好交互体验、随技术发展具有良好扩展性的搜索 *好棒文|www.hbsrm.com +Q: #351916072#
引擎。目前Scrapy爬虫框架在编写爬虫非常普及,Django Web框架在数据的处理和交互界面也拥有良好的体验感受,完善的框架基础可用作项目设计之中,作为企业级的elasticsearch搜索服务器具有实时搜索,稳定,可靠,快速,安装使用方便的优异特点,本项目引擎具有良好的开发运作的可行性和市场远景。
(二)选题意义
毕业设计是大学生活里对自己最后一份答卷,是对自己三年的大学学习与生活的检阅,考验学生在学习方面的学习能力和在社会生活中对生活的感知理解,让每位同学对自己的学习程度,生活理解方面具有更深刻的理解。在选课的同时,也是为自己寻找到下一步,甚至是未来学习的方向,让每位学生在毕业来临之际,对自身有一个更高的要求,我选定此课题,不仅仅是为了完成最后的毕业设计,也是对自己过去梦想的一种实现完成一个以用户体验和健康完善数据存储的搜索引擎,也是对即将毕业的自己的肯定和鼓励。
(三)设计目标
Scrapy,Django框架的elasticsearc搜索引擎,按目标实现用户在web端的数据索引获得。主要设计目标一是从互联网网站中获取数据和数据的保存,由引擎对数据解析,用户通过网页交互界面实现对数据信息的检索获得,用户搜索的同时可以提供搜索建议、以及用户的搜索记录。
(四)开发软件
1. JetBrains PyCharm 2019.1
JetBrains PyCharm是由JetBrains打造的一款Python IDE集成开发软件。具有强大的自定义和可扩展性,它的各个版本都拥有高度一致的开发GUI,并内置集成了VIM,和其他强大的功能,对于本课题,它提供了良好的Django开发功能,便于Django框架的开发。
2.Python语言 3.7
Python语言简单简洁易懂易学具有很好的可移植性,因为它的开源性,但正因如此它没有很好的加密性,有用很多使用性较高的第三方库,运行速度比较缓慢。
3.Django
开源代码框架,拥有一流的url设计,支持多语言应用,结构简单,用户通过页面访问url,url控制器将url地址匹配对应view视图然后通过model从数据库获取数据将数据返还给视图,视图将展示数据传给template及我们网页使用的html文件。Django结构如图11。
图11 Django结构图
4.Elasticsearch
基于Lucene开发的分布式多用户的全文搜索、结构化检索和分析的引擎,是目前使用最广泛开源搜索引擎之一,本设计使用elasticsearchrtf中文版并结合elasticsearchhead,kibana,nodes等插件结合运用来进行网页数据的存储查询。
5.Scrapy爬虫框架
Scrapy是基于python语言开发的高层次的屏幕抓取和web抓取,抓取速度快,并且可以从web页面提取结构化数据。在此框架中Engine引擎负责数据和信号在各个模块之间的传输,并被scheduler调度器的“指挥领导”存放请求,通过下载讲请求返回给引擎,再通过编写的spider进行数据的提取和url的提取,把提取的url传递给engine。数据通过scrapy下的Item和Pipeline管道进行数据的处理,在实现强大功能的同时可自定义下载扩展,设置代理等等。其工作流程流程如图12。
图12 Scrapy工作流程图
二、网站分析与爬虫设计
(一)网站分析
1.首先对所要爬取的网站进行分析,了解网站主体结构和网页规则。网站结构代码图21。
图21网站主题结构
网站文章全部存放在http://web.jobbole.com/allposts/页面下,通过class=”post floatedthumb”保存。网站结构代码如图22
图22 网站结构代码
通过网站结构,确定我们所需要提取的信息,网站链接地址,网站标题,网站内的文章主题,发布时间和评论,收藏点赞数,和标签信息。构建数据库的逻辑结构,数据库设计如下表21。
表21伯乐在线文章表(jobbole_article)
字段名称
类型
长度
可否未空
约束
含义
title
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/rjgc/1036.html