当前位置:文档之家› 微博搜索引擎需求分析

微博搜索引擎需求分析

微博搜索引擎需求分析摘要:自从微博这一事物走入我们的生活中,在短短几年的时间里迅速被人们接受,尤其是得到了年轻人的热捧。

人们通过微博可以建立密友圈进行互动,可以把握最新的热点新闻资讯,也可以看到一些轻松诙谐的小故事、图片,在学习工作的压力之余,极大的丰富了我们的精神生活。

不知不觉人们养成了在微博上搜索的习惯。

我知道这种不自觉养成的习惯必然与我们的需求和搜索意图密切相关,微博的特点是实时性强,支持多平台的用户体验,极为方便快捷,这刚好能满足人们的需求。

关键词:JSP MySQL Hibernate Struts1 AJAX javascript 微博搜索引擎网络蜘蛛1引言Java Web,是基于B / S模式(Brower/Server),用Java技术来解决相关web互联网领域的技术总和。

web包括:web服务器和web客户端两部分。

Java在web的应用框架很多,如JSP、 AJAX、 XML、 Struts1、 Struts12、 JQuery、 Hibernate、 Spring、Flex、 JPA 等。

本系统主要用到了JSP、 AJAX、 XML、 Struts11、Hibernate。

其中,JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准;AJAX是使用客户端脚本与Web服务器交换数据的Web应用开发方法;XML是可扩展标记语言(Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言;Struts11 是Apache软件基金会(ASF)赞助的一个开放源代码的项目;Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了对象封装,使得Java程序员可以使用对象编程思维来操纵数据库。

Java技术对Web领域的发展注入了强大的动力。

微博搜索引擎通过抓取微博信息,获取微博相关参数值,分析并统计网网民们对于该条微博的评价、转播次数、阅读量等信息,通过一定的算法微博的综合素质,给出打分并排序,对于用户的搜索的指定种类的微博进行排序,返回结果。

此外,提供微博比较功能,用户可以在阅读完指定的微博后,浏览相关的微博,这将进一步的加强用户搜索到自己所需要的信息的速度和完整度。

2相关技术2.1 JSP技术JSP全名为java server page,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以<%, %>形式)。

JSP与Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

2.2 MySQL 数据库MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL的SQL语言是用于访问数据库的最常用标准化语言。

MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。

2.3AJAX技术Ajax是结合了XML、Java、以及JavaScript等编程技术,可以让开发人员开发可以通过页面动态的访问数据库而不用重载页面的技术。

Ajax使用客户端脚本与Web服务器交换数据,这样,Web页面不用进行重新加裁,就可以根据用户的请求动态地更新。

使用Ajax,用户可以创建接近C/S(Client/Server或客户/服务器模式)的直接、高可用、更丰富、更动态的Web用户界面。

2.4XML技术XML指可扩展标记语言(Extensible Markup Language, XML) ,是可以用于标记电子文件使其具有结构性、标记数据、定义数据类型的标记语言,是一种可以让用户对自己的标记语言进行定义的源语言。

XML属于标准通用标记语言(SGML),是它的子集,适合Web 传输。

XML 为描述和交换独立于应用程序或供应商的结构化数据提供统一的方法。

2.5struts1框架Struts1是Apache软件组织提供的一项开放源代码的项目,它给Java Web应用程序提供了模型-视图-控制器(Model-View-Controller,MVC)框架,适用于开发大型可扩展的Web 应用程序。

Struts1这个名字起源于在建筑和旧式飞机中使用的支持金属架。

Struts1给Web 应用程序提供了一个好用的框架,使得开发人员可以轻松地把精力集中在如何解决实际业务问题上而不用过分纠结于系统的实现。

另外,Struts1 框架提供了供扩展的地方,应用程序可以轻松的扩展,而不用大量修改系统,这样能更好的适应用户的实际需求。

2.6Hibernate框架Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web 应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

2.7设计系统My EclipseMyEclipse企业级工作系统(MyEclipse Enterprise Workbench,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。

它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts1, JSF, CSS, Javascript, SQL, Hibernate。

2.8 网络蜘蛛蜘蛛(即Web Spider),实际上是一个基于HTTP 协议的网络应用程序。

网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,并抽取出网页中的其它超链接地址,然后通过这些链接地址寻找下一个网页,这样直循环下去,直到把这个网站所有的网页都抓取完为止。

在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先。

广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。

这是最常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。

深度优先是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。

这个方法有个点是网络蜘蛛在设计的时候比较容易。

2.9 切词器众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。

例如,英文句子I am a student,用中文则为:“我是一个学生”。

计算机可以很简单通过空格知道student 是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。

把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。

我是一个学生,分词的结果是:我是一个学生。

2.10 索引器索引器是搜索引擎系统心须也是很关键的一个环节,它主要完成将切词形成的顺排档文档组织成倒排档索引数据。

(索引的合并用拉链)2.11 查询器查询器是搜索引擎系统中最后一个环节,是最终和用户打交道的用户搜索界面。

查询器是通过Web 页接受用户输入的搜索参数并切分用户输入的字串,访问倒排档索引文件检索出所有符合检索条件的文档,并对其进行并集运算和排序运算,最后得到最终的结果文档,再从各文档中提取摘要信息写入用户反馈网页中。

由于在检索过程中需要读取索引文件并进行系列的运算,因而查询器很难用ASP、PHP、JSP 等一些服务器脚本来实现,必须通过CGI 程序来完成。

采用ISAPI 来实现是一种很好的选择,它是运行在Windows 平台上并配合IIS 服务器,是以DLL 的形式发布,用户的查询只需要提交给此DLL 处理,处理完后会自动以HTML 的形式反馈给用户。

3 项目功能描述通过抓取微博信息,获取微博相关参数值,分析并统计网网民们对于该条微博的评价、转播次数、阅读量等信息,通过一定的算法微博的综合素质,给出打分并排序,对于用户的搜索的指定种类的微博进行排序,返回结果。

此外,提供微博比较功能,用户可以在阅读完指定的微博后,浏览相关的微博,这将进一步的加强用户搜索到自己所需要的信息的速度和完整度。

3.1 需求列表1. 用户可以通过本搜索引擎查询指定微博的阅读量,转发次数;(1)使用具体微博类型作为查询条件,如军事、社会、情感、动漫、电影、娱乐、美食等;(2)使用若干重要参数进行查询,如微博所属企业(新浪、腾讯、搜狐、雅虎等),微博转发量、微博阅读量等。

2. 在阅读指定的微博时,相关的微博都将按相关程度呈现于用户的面前。

4 模块说明图4.1微博搜索引擎框架图4.2微博搜索引擎的体系结构4.3 微博搜索引擎系统结构5 数据结构及数据类型分析(决定数据库表如何设计)索引数据库结构S p i de r程序搜索回来的信息要进行索引, 并建立索引表存储在索引数据库中。

数据库采用MySQL 。

建立索引项时采用单索引项,对其赋一个权值,这个权值按照词在文档中出现的位置决定。

在文档中的位置不同权值则不同, 在〈titl e 〉中出现的权值最高。

最后计算词相对整个网页的总权值, 本论文在总权值的计算方法上采用统计法。

取关键字的原则是英文单词按一个字符为一个单位, 中文按两个字符为一个单位。

总的权值= I N I TS C OR E ×W E I G H T + ( T O T AL 2T I M ES - 1 ) × W E I G H T × I NCR E M E N TI N I TS C ORE 为每一个单词的基准“分数”, T O 2T AL T I M ES为该单词在网页中出现的次数, W E I G H T是该单词在不同的内容段出现所具有的不同权值( 比如在KEY WORD 段,或者是标题段,或者是内容段等等) 。

I NCRE M E N T是该单词每多出现一次所增加的“分数”。

相关主题