您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 面向Web2.0 个性化搜索网站设计文档
面向Web2.0个性化搜索网站项目设计文档Version1.0修订历史纪录DateVersionDescriptionAuthor2008-09-080.9添加项目架构设计。项目组2008-10-121.0添加详细设计。项目组目录1引言51.1文档目的51.2参考资料51.3项目背景51.4项目目的51.5项目意义62数据设计72.1数据库设计72.1.1数据表ER图72.1.2数据库表结构描述82.2搜索索引设计123架构设计133.1开发框架133.2功能结构144详细设计154.1搜索模块154.1.1搜索功能174.1.2自定义录入功能194.1.3订阅功能204.1.4数据挖掘共享功能204.1.4.1主页数据统计204.1.4.2搜索内容提示数据挖掘214.1.4.3相似搜索结果数据挖掘224.1.5评价功能234.2用户管理模块254.2.1注册功能254.2.2密码取回功能274.2.3登录登出功能284.2.4帐号信息维护294.2.4.1基本信息维护294.2.4.2密码修改304.2.4.3安全码修改314.2.4.4订阅内容维护324.2.5积分转让功能334.2.6历史查询功能344.3管理员模块364.3.1登录登出功能364.3.2在线用户统计功能374.3.3首页热门词网页审核功能385关键算法描述405.1个性化排名算法405.2抓取网页过程415.3领域排名算法425.4订阅服务421引言1.1文档目的本文档的目的是对项目的总体架构进行描述,并对需求规约和用例规约中抽象出来的功能点进行详细设计,并对用户界面进行设计。设计文档对系统功能和具体实现方法有准确的说明。文档使开发人员对系统的架构和详细开发内容了然于心,使客户比对其需求与系统实现之间的差别。1.2参考资料《项目计划》——项目组《需求规约》——项目组《用例规约》——项目组1.3项目背景当今搜索引擎成为了热门话题,Google、百度的成功更是使搜索引擎成为了一种高回报的网络运营模式。现在的搜索引擎普遍使用网络爬虫技术将散布在互联网上的网页下载到本地,经过分析索引后保存到本地数据库,等待用户搜索。这一类型的网站,国外有Google,国内有百度,都已获得巨大的成功,同类型的搜索引擎已无法与之抗衡。与此同时,一部分垂直搜索引擎在某些领域发挥其领域专精的作用。这些搜索引擎的共同之处在于使用爬虫技术获得信息,虽然行之有效,但由于机器识别的局限性,对网页内容的理解达不到令人满意的要求,自然搜索的结果也不令人满意,充斥着重复和错误的结果。所以,可以通过人工自定义搜索结果的形式,给出一个人造的数据仓库,对互联网上的网页进行分类和确认,发挥Web2.0网民的积极性,提供最准确最人性化的搜索服务。1.4项目目的本项目的目标是创建一种新类型的搜索网站,与传统搜索网站的区别主要在于搜索结果由用户自己录入,而不是传统的纯粹的通过字符串匹配和机器识别。换句话说,该网站提供搜索服务的信息来源于用户,根据用户输入关键词(keywords)到目标网址(URL)的关联关系后,机器抓取该网页,验证并处理后保存到本地数据库。比如某用户定义“一个很好玩的网站”到开心网的关联,当其他用户搜索“好玩的网站”时候,就能得到开心网的网址作为搜索结果,这不是传统搜索引擎通过机器识别能够得到的结果,这样的结果更准确更人性化。本项目目标实施和构建了一个可发布运营的自定义搜索网站,为用户提供经人工辨认后的搜索服务,用户既是内容提供者,又是服务享受者,充分体现了Web2.0取自用户回馈用户的思想。可能的话,在具备一定用户规模后可以为社会厂商、网站提供广告信息服务。1.5项目意义本项目的核心价值在于,通过用户自由录入关键词与网址的关联作为搜索的信息源,搜索的结果来自用户,搜索结果的排名来自用户,搜索的质量由用户评价,体现了Web2.0思想。同时,搜索网站还提供用户委托的个性化搜索服务,用户通过订阅关键词能及时得到一些最新录入的信息,也能够对主流搜索引擎进行委托搜索服务。在用户录入的海量搜索结果上进行数据挖掘,网站将提供相关统计结果,做到来自用户,回馈用户。2数据设计2.1数据库设计数据库采用开源数据库MySQL5.0.2.1.1数据表ER图2.1.2数据库表结构描述用户基本信息表(DbUser)属性名属性描述属性类型userid用户ID,自增长bigIntusername用户登录名nvarchar(100)password用户登录密码,需要MD5加密nvarchar(100)email用户email,用于确认注册nvarchar(100)realname真实姓名nvarchar(100)sex性别,(1男,0女)Intaddress用户地址nvarchar(100)profession用户职业nvarchar(100)idcard个人身份证号,用于实名认证nvarchar(100)phone用户电话号/手机号nvarchar(100)account银行帐号,用于积分兑换接口预留nvarchar(100)securityid个人安全码,用于取回密码nvarchar(100)userip用户注册IP(用于统计地区)nvarchar(100)credit个人信用度intrecommenderid注册推荐人IDbigInt发布关联(PostLink)属性名属性描述属性类型userid用户IDbigIntlinkid关联IDbigIntposttime关联发布时间datetime关联信息(Link)属性名属性描述属性类型linkid关联IDbigIntkeyword关键词nvarchar(200)linkaddress链接地址nvarchar(500)content链接内容简介nvarchar(500)agree评论赞成数intopppose评论反对数intoverlap重复度intpicture图片说明(预留)nvarchar(200)操作积分表(SheetRecord)属性名属性描述属性类型recordid操作记录IDbigIntuserid用户IDbigIntoperatetime操作时间datetimelinkcentdo获得关联积分doublebonuscentdo获得奖励积分doubleincentdo获得转账积分doubleoutcentdo失去转账积分doublemoneycentdo获得第三方货币转换的积分double积分表(Sheet)属性名属性描述属性类型sheetid积分表IDbigIntuserid用户IDbigIntlinkcent获得的关联积分doublebonuscent获得的奖励积分doubleincent获得的转账积分doubleoutcent失去的转账积分doublemoneycent获得的第三方货币转换的积分(预留)doubletotalcent总计积分double评价链接(evallink)属性名属性描述属性类型evallinkid评价链接IDbigIntuserid用户IDbigIntlinkid关联IDbigInteavl评价,(1赞成,0反对)Intcontent评价内容nvarchar(256)订阅关键词(Subscribe)属性名属性描述属性类型subscribeid订阅关键词IDbigIntuserid用户IDbigIntkeywordid关键词IDbigInt关键词(Keyword)属性名属性描述属性类型keywordid关键词IDbigIntKeyword关键词nvarchar(128)rate重复度Int搜索内容历史(SearchContent)属性名属性描述属性类型id搜索内容IDbigIntkeyword搜索内容nvarchar(128)rate数量Int2.2搜索索引设计搜索索引使用compass框架的Hibernate3GPSDevice进行实时增量式索引,索引的结构是采用Lucene子索引形式,即每个对象创建一个独立的索引,每个子索引独立拥有自己的索引结构,片段文件保存子索引的元信息,倒排文档则会出现在每个子索引的文件夹内。Hibernate3GPSDevice在Hibernate的被调用时创建一个较小局部索引,用来应付用户的实时录入,在规定的时间间隔后,和主索引进行合并,这样既满足了用户录入实时有效可查询,也避免了重复索引主索引带来的性能问题。Compass索引结构Compass索引子索引子索引子索引Lucene索引片段1片段2……3架构设计3.1开发框架网站全部采用开源技术和框架,采用J2EE中比较流行的SSH架构(Struts,Spring,Hibernate),由Struts负责表现层,Spring负责总体框架,Hibernate负责数据的持久化。在此基础上,使用开源的Compass搜索框架进行搜索的优化配置。后台数据库使用开源的Mysql,前台服务器使用开源的Apache,然后使用Squid进行请求分担。其总体架构如下图所示:MySqlDatabaseHibernateCompassIndexSpringStrutsCompassSquidSquidSquid3.2功能结构搜索模块用户管理模块管理员模块4详细设计4.1搜索模块index.jsp主页页面设计首页从上至下用三条分隔线分成了四部分,最上面一块是搜索框和搜索按钮,提供了搜索服务。从上至下第二块要求用户输入关键词,相关联的网址,还有验证码,提供了自定义录入的功能。第三块允许用户输入想要订阅的关键词,提供了订阅的功能。第四块是三项排名,热门网页排名、热门提交次排名和最新提交的网页,属于数据挖掘共享功能。第一块中还提供了实时的系统用户数、关键词数和网页数量,也属于数据挖掘共享功能。除此以外,主页还提供了用户登录、注册、帮助和忘记密码的服务链接,方便用户管理帐户。首页Struts-config图首页包含的功能模块有:搜索功能(searchLink)自定义录入功能(postLink)订阅功能(subscribeKeyword)数据挖掘共享功能(main)评价功能(eval)4.1.1搜索功能输入:搜索功能要求用户输入搜索内容,可以是中文、英语或者其他文字,也可以输入多个关键词(如用空格分隔),进行多项查询。输入的内容保存在SeachLinkForm中提交。如输入“美剧”。处理过程:SearchLinkForm需要传入String格式的搜索内容和Integer格式的页码,主页的搜索页码为0。由于考虑到使用POST在刷新时会有警告提示,影响用户搜索体验,Form的传递使用GET方式,由于这种方式中文参数会乱码,所以必须将搜索内容编码成UTF8后传到acitionservlet处理。SearchLinkAction处理中首先将收到的查询内容解码还原,然后检测用户是匿名用户还是以登陆的会员,前者会选择基本排名算法,如果是会员搜索,则增加会员兴趣因子,选择个性化的排名算法。调用Compass中模仿Lucene的query命令,添加已选择的排名算法,添加关键字高亮显示,返回每页定量的搜索结果。对于其他用户相似的查询,则列出链接。详细排名算法在第5章个性化排名算法一节中具体描述。输出:输出结果如下图所示,找到六条结果,耗时16ms,所以不必分页,每一条结果由五部分组成,从上至下依次是:1.用户录入的主题词(即自定义的描述)2.网页标题3.网页内容一览4.网址5.关联的数量、评价结果由于是匿名用户搜索,所以只按照基本排名算法。Search.jsp搜索结果页面设计如果搜索没有得到结果,则提示用户主动去录入该关键词的关联,或者让他订阅该关键词,一旦有相关信息被其他用户录入,能够通知他。SearchNoresult.jsp搜索无结果页面设计4.1.2自定义录入功能输入:录入功能要求用户输入主题词(长度限128字符),可以是中文、英语或者其他文字,还要输入相关联的网址和验证码,单击验证码的图片可以刷新。如下图的“中央电视台”到“
本文标题:面向Web2.0 个性化搜索网站设计文档
链接地址:https://www.777doc.com/doc-4288242 .html