1前言

1.1 课题研究的背景

互联网特别是移动互联网的高速发展,网上信息急剧增长,传统的搜索引擎十分适合大众搜索,但是面向特定领域的搜索时,就会有心无力。并且传统搜索引擎采集网页是饥饿扫描式爬虫,难以查找相关主题,网络带宽消耗大等等,这些潜在的问题急需解决。在这种背景下,垂直搜索就产生了。

垂直搜索引擎的应用领域很多,比如就业类搜索,内推网,拉勾网都是这个方面的典型代表;去哪儿、去旅游网等是旅游方面的垂直搜索代表,门户类搜索更多些,比如新浪微博,网易微博等等;医药搜索里丁香园是代表、图书搜索比较多,每个学校的图书馆都会有检索系统吧;购物搜索里最有名的就是淘宝和天猫了,并且大大加快了人们的生活节奏,非常便利。还有更多其他的主题,这里就不详细介绍了,但是基本上现在垂直搜索引擎包罗了所有细分的各个主题,与通用搜索引擎相比,垂直搜索引擎能为用户提供范围更小,更深入,更有针对性的信息。

1.2研究的目的和意义

目前随着“互联网+”的兴起,掀起了一股“互联网+农业”的潮流。“互联网+”时代,如何通过各种手段解决信息不对称的问题,是当前中国的生态农业面临的最大发展机遇,而农业垂直搜索引擎正好解决了这个问题。

农业垂直搜索引擎可按照农业的产品分类分为种植业,养殖业,林业,牧业,水产业等进行检索。它的检索内容包括科研成果,新闻咨询,商业信息,百科大全,甚至可以细分到粮食油料,花卉,木材森林,生畜家禽,鱼虾水产。所以它既能满足普通群众,也能满足农商以及相关的学习人员资料的查询。

1.3技术介绍

1.4.1 Heritrix 爬虫介绍

Heritrix 是一个开源的网络爬虫框架,使用Heritrix,我们可以快速地根据需求对特定的内容进行爬虫,还可以基于链接或html内容进行筛选过滤候选url。Hetiitrix主题策略抓取主要分两种:基于链接和基于内容。1.0.0包含以下关键特性:1.用单个爬虫在多个独立的站点一直不断的进行递归的爬。2.从一个提供的种子进行爬,收集站点内的精确URI,和精确主机。3.主要是用广度优先算法进行处理。4.主要部件都是高效的可扩展的。5.良好的配置。

1.4.2 Lucene 全文检索技术介绍

Lucene是4 Jakarta apache软件基金会一个子项目,项目团队工具包是一个开源的全文搜索引擎,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎两种西方语言(英语和德语)。Lucene是一个高性能、可伸缩的信息检索(IR)图书馆。它可以为您的应用程序添加索引和搜索能力。Lucene搜索实体形式的文档(文档),它由字段(字段)和价值(价值)。每个字段值由一个或多个搜索元素(术语)——这句话。Lucene搜索基于反向索引,包括信息可以搜索文档。当使用普通索引,你可以搜索文档,为了理解它包含哪些字段,但是使用反向索引不同,你会搜索字段的话,为了理解所有的文档包括词汇。整体的实现结束后,基于内存和使用它作为一个内存缓存,缓存同步和HBase的后端系统。总体框架如图1-1所示:

图1-1 Lucene总架构图

1.4.3  SSH框架介绍

本系统的web客户端部分采用SSH框架搭建。其中SSH分别代表Struts2,Spring,Hibernate。Web的开发分为三层:展示层,管理层,数据访问层。

Struts2是充当展示层的角色,它是基于MVC思想而发展起来的,其中Struts标签能很好地融入到JSP中,使得开发起来更加方便。 Struts2的标签一个巨大的改进是不依赖于任何表现层技术。Struts2标签可分为UI标签,非UI标签,ajax标签。

Spring 是充当管理层的角色。它通常用于管理整个项目的bean,bean类使用它可以很容易地创建并共享实例。同时Spring具有很好AOP切面功能,轻松的配置就能实现切面编程的效果。Spring还具有良好的扩展性,它能很好地融合Hibernate框架和Struts框架,使得用起来十分方便。

Hibernate 是充当数据访问层的角色。顾名思义,就是负责与数据库的连接,对数据库数据的增删改查等。我们知道,使用sql语句对数据库的访问与查询是复杂与繁琐的,正常情况下,我们在与数据库建立连接后,编写sql语句查询结果,还得要把查询的结果字段一个个地封装进类中,如果类与类之间还有一对多或者多对多的关系,那么这个过程是很繁琐的。Hibernate就是为了解决这个繁琐的过程而产生的,它能使程序员面向对象地建立表与表之间的关系,同时也能面向对象地写SQL语句,这种机制叫ORM机制。

2需求分析

2.1应用需求分析

由于农业分为种植业,养殖业,林业,牧业,水产业,并且该搜索引擎针对的人群主要是农业爱好者,农商以及相关的研究人员,所以爬虫的数据源分为三类网站:

(1)农业新闻资讯类:该类网站提供农业最新的新闻资讯,包括最新科研成果,最新销售动态,最新热门培植方法等。

(2)粮食油料类:该类网站提供有关水稻,玉米,油料,小麦等粮食类专业性的百科知识和相关供应信息。

(3)苗木花卉类:该类网站提供有关全面的花卉信息,提供专业的花卉养殖技术、花卉养殖知识及花卉市场信息,家庭养花常识、花卉繁殖、花卉病虫害防治、花卉种植等全面的花卉养殖知识及花卉种植技术。

(4)木材森林类:该类网站提供木材的基本百科知识,相关行情,相关新闻,相关政策等木业信息。

(5)鱼虾水产类:该类网站提供各种各样鱼类的视频、图片、品种、价格等龙,还有鱼类的喂养、风水、饲料、疾病、防疫等较为全面的百科知识。

用户可以按照这些分类进行检索信息,系统会自动从该分类的检索库进行检索并返回结果,从而达到更好准确率,更好的用户体验。

2.3数据源的可靠性

针对以上数据源,我们进行人工对网站的分析与筛选,尽量挑选出质量较高的站作为数据源。以下是该系统的试用数据源:

粮食油料:

水稻:http://www.chinaseed114.com/seed/shuidao/

油料:http://www.chinaseed114.com/seed/youliao/

玉米:http://www.chinaseed114.com/seed/yumi/

杂粮:http://www.chinaseed114.com/seed/zaliang/

瓜菜:http://www.chinaseed114.com/seed/guacai/

花卉:

花卉:http://www.aihuhua.com/baike/

草本花卉,http://www.aihuhua.com/baike/caoben/

兰科花卉:http://www.aihuhua.com/baike/lan/

木本花卉:http://www.aihuhua.com/baike/muben/

水生花卉:http://www.aihuhua.com/baike/shuisheng/

多肉多浆:http://www.aihuhua.com/baike/duorouduojiang/

木材森林:

红木:http://www.chinatimber.org/baike/baike.asp?wood=12

板材原木:http://www.chinatimber.org/baike/baike.asp?wood=1

其它咨询:http://www.chinatimber.org/news/

生畜家禽:

家禽鸟类:http://niaolei.org.cn/category/common/fowl/

虾水产:http://longyu.cc/baike/view-10.html

关于数据源选取的依据:

1.网站流量较大。

2.信息分类较完整。

3.网站对农产品的专注性强。

2.3农业垂直搜索引擎系统的基本特点

(1)信息量:随着互联网的快速发展,虽然农业信息只是互联网的冰山一角,但是它的信息量也是非常惊人。作为数据源,考虑数据的存储方式是这个系统的首要解决的问题。

(2)并发访问:由于搜索引擎针对的人群是所有可以上网的用户,他们很有可能在同一秒级别时间内同时对我们的系统进行访问,所以解决并发访问是迟早的事情。该系统解决这个问题的方法为:利用多个tomcat进行流量访问的负载均衡,把项目拆分为多个子项目单独运行。

(3)数据存储安全性要求:对搜索引擎来说,数据就是一切,一旦数据丢失就意味着整个系统瘫痪,所以保证数据的安全性非常有必要。通常来说可以利用hadoop中HDFS的海量存储方式进行备份,默认备份数是三份。

(5)后台必要的信息合法性校验:为了保证数据库信息的完整性,数据库的信息一方面来自人工筛选,这一方面具有一定的准确性;另一方面是这些信息涉及到整个系统的运作,这一方面的信息必须进行合法性校验。

(6)界面的友好性:搜索引擎在于实用性,用户之所以用搜索引擎是为了过滤掉一些他不想要的信息,只关心想要的信息。所以简洁的界面就是最友好的界面。

(7)完备的帐号权限管理:用户可以登录后台管理系统对该系统进行管理。

2.4农业垂直搜索引擎系统主要功能

根据上述特点,农业垂直搜索引擎系统主要实现了以下功能:

(1)爬虫功能:系统对指定农业网站定期数据采集和解析HTML文本,并存储在本地文件系统中。

(2)数据分析功能:该功能包括文本分词,文本特征提取,文本去重。

(3)Solr索引与检索功能:Solr是一个独立的企业搜索应用服务器,它提供了类似于Web服务api接口。使用Solr作为检索的服务端,能达到事半功倍的效果。

(4)索引数据更新功能:数据分析模块分析出数据后将保存在一个文件路径中,索引数据模块会定期检测这个目录,如果有数据那么就把文件路径添加到一个特定的数据表中,Solr检测该表并对其数据进行索引。

(5)权限管理:主要包括最基本的权限管理功能。

(6)栏目管理:主要对爬下来的数据进行栏目分类。

垂直搜索引擎一》前言与需求分析相关推荐

  1. 基于Python爬虫的垂直搜索引擎设计与实现

    作者主页:编程千纸鹤 作者简介:Java.前端.Pythone开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路  关注作者有好 ...

  2. 影响中国发展的七大垂直搜索引擎

    百度进军日本前途未卜,Google开进中国遭遇抄袭门,YAHOO中国再演变脸秀.2007年才刚刚过了三分之一,中国互联网搜索领域已是风声水起.殊不知,在这些互联网大鳄的身边,还潜伏着重重杀机,各类的垂 ...

  3. 机票垂直搜索引擎的性能优化

    机票垂直搜索引擎的性能优化 原文:机票垂直搜索引擎的性能优化 一.行业背景与垂直搜索 我们先了解一下机票的行业背景,下图是由中航信统计的数据,蓝色的曲线代表平均每公里的票价,红色曲线指的是客运量.从2 ...

  4. 垂直搜索引擎完整实现

    本篇博客是在上一篇<Lucene搜索引擎+HDFS+MR完成垂直搜索>的基础上,在数据收集之后的JSP/Servlet方面,换为SpringMVC框架来实现. 借助SpringMVC技术完 ...

  5. 计算机技术论文搜索引擎,垂直搜索引擎核心技术研究及展望论文

    垂直搜索引擎核心技术研究及展望论文 垂直搜索引擎与计算机领域多个方面的发展与应用息息相关,其关键技术更是促进计算机领域进一步发展的重要突破口.所以,对于垂直搜索引擎关键技术的研究具有十分重要的意义.我 ...

  6. 国内外优秀的垂直搜索引擎

    国内外优秀的垂直搜索引擎 4.1中国垂直搜索引擎名单 电子商务搜索引擎 http://www.hengzhe.com 亨者搜索 餐饮搜索引擎 http://www.gudumami.cn 咕嘟妈咪 旅 ...

  7. 什么是垂直搜索引擎(之二)

    什么是垂直搜索引擎(之二) 垂直搜索引擎的三个特点: 1.垂直搜索引擎抓取的数据来源于垂直搜索引擎关注的行业站点:     比如:找工作的搜索引擎 www.deepdo.com 的数据来源于:www. ...

  8. 国内专业垂直搜索引擎汇总

    我先抛个砖,列举一下我所知道的国内垂直搜索引擎,大家也来补充一下你知道的吧. 工作搜索引擎: Jobui.com, 职友集 http://so.01hr.com 职通车 http://www.glob ...

  9. 通用搜索引擎和垂直搜索引擎的区别

    文章转载自[b]258集团[/b]<拆掉互联网那堵墙> 1.我们知道,每个独立的搜索引擎都有自己的网页抓取程序爬虫(spider).爬虫Spider根据预定的规则,对已知或未知的网页进行逐 ...

最新文章

  1. 美国防承包商博思艾伦泄露五角大楼相关敏感文件
  2. elastic的gc相关
  3. servlet session listener
  4. 思考:用开发移动app的观念来开发网站
  5. OpenCASCADE可视化:3D演示之3D术语表
  6. android 判断http编码格式,安卓入门笔记之HttpURLConnection的使用
  7. 内网网段划分ciso交换机配置
  8. PostgreSQL 自定义复合类型(composite type) deform引入的额外开销
  9. 微服务等于Spring Cloud?一文告诉你微服务到底是什么
  10. Android仿人人客户端(v5.7.1)——采用RelativeLayout做父容器,实现左侧滑动菜单(二)...
  11. 设置VS2015背景图片(转载)
  12. 你和高级工程师的差距在哪里?
  13. Ubuntu 12.04重启后丢失resolv.conf问题
  14. 快速求2的n次幂(防Time Limit Exceeded)
  15. spring源码:注册后置处理器
  16. STM32之红外接收
  17. 半导体存储器(RAM和ROM)
  18. spring data JPA常用注解
  19. Java-坦克大战2
  20. luogu P1373 小a和uim之大逃离

热门文章

  1. Docker练习安装
  2. Jq-滚动条插件写法(一)
  3. Ubuntu 18.04.2 LTS更换国内快速更新源的正确姿势
  4. Android Framework 窗口子系统 (08)窗口动画之动画系统框架
  5. 小黄车凉了?1分钟带你解锁共享经济的3种新玩法
  6. bpl开发模式_BPL的完整形式是什么?
  7. python计算球的体积的函数设计
  8. 视频聊天软件开发技术
  9. python爬虫_爬取京东商品写入Excel表
  10. MYSQL RR级别是否能解决幻读问题