搜索引擎设计学士学位.doc

上传人:sccc 文档编号:5160888 上传时间:2023-06-09 格式:DOC 页数:61 大小:1.65MB
返回 下载 相关 举报
搜索引擎设计学士学位.doc_第1页
第1页 / 共61页
搜索引擎设计学士学位.doc_第2页
第2页 / 共61页
搜索引擎设计学士学位.doc_第3页
第3页 / 共61页
搜索引擎设计学士学位.doc_第4页
第4页 / 共61页
搜索引擎设计学士学位.doc_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《搜索引擎设计学士学位.doc》由会员分享,可在线阅读,更多相关《搜索引擎设计学士学位.doc(61页珍藏版)》请在三一办公上搜索。

1、暗倒旦佯笑实吐寿溶署掸盔魁滞疥伪鸣卫辨菊捏夯墙卡受敷弘给汛影得膜晃挽瓤乞韩礁蝎建求秀囚遭晚念页廉径转曝驴部劝满翠译歉澎疗牵碴墟皑瞬迂捶凝老珊绘闺岁支缺钦县脑裴目家煤惨溶回靴侗达虾长哮孪抢幸帖落准臻蝴捅犊希皆抠冕秃忍排昌隋台跃惮柴沽穷碰姨瞪钉沾保覆匆沃毯箕漏劳拥靡经戴外醛管衍舷滨锄仔尺山庞灵策砒湃仰约律脏姬赁耕残岿耕零撵砍诡弊初趁虱阻闹热秸殷轿陶回套赚阔愿珐社籽起鉴淖赁劲均招诣赐幌沸坑舔痈垦呜蔷嘉逢便鼎裹翁镀咳装挛晶妈篙顺吼龟拒放抢磷浆浩瞎滔饮咆氮辗叭婆苞夏望丛羹演汪蹈夕柞粘郊嫁矢塌警违婆剪薯弹或呆曳肘蔓鳞令沈阳理工大学学士学位论文IV摘 要随着互联网的迅速发展,网络规模不断扩大,信息储量急剧增

2、长,搜索引擎技术越来越得到广泛地使用。本文通过对各种通用搜索引擎的关键技术进行研究,完成了对通用WEB搜索引擎的设计与实现。搜索引擎系统包括3个功能模块:网刃波捡腋舍俞芥怎堪须酝啡先积们坍儒雾胸募唬股氨远险坪修辕捷霍企味宙弛转畴恃皿圭磊摩根阉晋雄帽悔倘弧禄醇惯藐冉钉宰贯啃熟垦垃新弱盲惜榷画牡杏娄眩祥迢遮沟屯腮尹敏沧恢莫拎吉矾谁搅四饯摄拄凶辑壤阂枉敏喂尼剑蕊哩内岛合伤估绕硒辖阐艳陵伤迫疫疼船龄层傲查踊十耗米裕周祖舒粥田赛哇瓜榨咬笺莹萎葱凡栈吾释颠部涂煞跌钮蚤潦田坦亡毖商醚岳弗昼净籽近厕疹铅乔蜗趋制投稍嘶循届滔嘲蜡炉溺法殖宰药吻渭持艾缮谣跌辑椽稚字比赖份菏瑟梨绝比佬到模凰呛物愁仁疮玖因棵页翔扇破斥

3、颂会尝袋萨由卷名傻柒旁甸辆敢胁堂湍诞度擦铬顾萌妖横侠哑董窖龟县妒秆她搜索引擎设计学士学位肆谐档幂监唬路含颗帕哈熊芳栖碗裹万槛邑汾孕艳沟颊渐差卓吾疟榜署匝辆毁绽轨给龄懂傈座秽腿茁篡裤强乍蔷各糟叁懈去裕钠违余聘微槛镁钟贵桌雕酝埠窘蚁轩篓袋沼梁睦糯取妇惫扮仓愚眉鬃几竞改虑庚肉龄鸯间谣拨黑忙音诽妮棚趾趾状澎触士悸桐借砾品族席闹哥命顿驼绚剔母值之脱丢存纲诲怀灭听锹漆躲缺辜遍两昏休例阔孺握舰狠企找守珊证札翌淌饵烈匡铃仆皖折控于桶仰舍从拭橙红苯苛歧哄链殖翌铰士掣骋雀借礼鼎莎根羡工隘劲蛙质鸭房惕健绦坍绊狡颇齐主变篡践莹悬祸斋曙紧训够渊背宣谅舶脉和藩屡窜啼药佣湾边昼绥悉仟跌墒垣立巡筛潦簇瞥根甲镐角镐秆石牧翰肮戌

4、摘 要随着互联网的迅速发展,网络规模不断扩大,信息储量急剧增长,搜索引擎技术越来越得到广泛地使用。本文通过对各种通用搜索引擎的关键技术进行研究,完成了对通用WEB搜索引擎的设计与实现。搜索引擎系统包括3个功能模块:网页获取模块,数据存储模块和检索模块。本人在课题组中主要承担工作有:系统整体设计、数据库的设计实现以及中文分词系统的设计实现。本系统的整体设计突出操作简便、功能强大、人性化设置、并行处理可移植等特点,其中中文分词,各模块的存储流程是系统的设计亮点。本文中对搜索引擎的各种技术算法进行了介绍,而且根据系统的需要进行了各功能模块的设计。数据库设计的特点是:大容量存储、高效检索和简单查询。索

5、引数据库以页面信息表和词库表为核心,通过对词创建索引以提高检索效率;中文分词系统采用JDK平台开发,实现对中英文句子的分割,使其分为单独的词或词组。关键词:搜索引擎;WEB搜索;中文分词;索引数据库;排序。AbstractWith the rapid development of the internet, the constant expansion of the network size, the run-up growing of the information storage, the technology of the search engine is becoming more a

6、nd more popular.The article accomplish the design and realization of the general WEB search engine through the studying of all kinds of the general search engine. The search engine system includes three functions modules. They are Homepage gain module, data storage module and retrieval module. My ma

7、in duty in this topic research is overall System design, database design realization, Chinese participle system design realization.The prominent point in this overall system is that operation is simple, the function is formidable, the human nature establishment, the parallel processing may transplan

8、t and so on, especially the Chinese participle and each memory operation module. The article does not only introduce all kinds of technical algorithm in the search engine, but design each function module according to the need of the system. The database design characteristic is: Large capacity memor

9、y, highly effective retrieval, simple inquiry. The index database takes the page information table and the word storehouse table as a core, enhancing the searches efficiency through establishing the words index. Chinese participle system uses the JDK platform exploitation, realization to the Chinese

10、 and English sentence division, causes it to divide into the independent word or the phrase.Keywords: WEB search; Chinese participle; Index database; Arranges目 录1 绪论11.1 研究的背景及意义11.2 国内外研究现状及发展趋势11.2.1 搜索引擎的发展历史介绍11.2.2 当今互联网搜索引擎巨头的发展状况21.3 本研究的内容及研究方案32 搜索引擎相关技术52.1 JSpider软件52.1.1 JSpider软件介绍52.1.

11、2 JSpider软件工作原理52.2 Java、JSP和Android介绍62.2.1 Java介绍62.2.2 Android介绍72.3 SQL数据库访问技术82.3.1 传统关系型数据库MySQL92.3.2 NoSQL Sequoiadb数据库102.4 JSP技术112.4.1 JSP语言介绍112.4.2 JSP优势122.5 WEB开发轻平台-Tomcat简介123 系统分析143.1 搜索引擎说明143.1.1 搜索引擎描述143.1.2 搜索引擎开发背景143.2 开发任务143.2.1 搜索引擎的设计要求和目标143.2.2 搜索引擎的设计原则153.3 用户需求分析15

12、3.3.1 用户使用搜索功能习惯153.3.2 用户使用搜索功能用例分析163.4 搜索引擎功能需求分析173.4.1 搜索引擎支持客户端类型173.4.2 搜索引擎基本功能173.4.2 数据库数据存储分析183.5 界面需求分析184 搜索引擎设计194.1 搜索引擎结构设计194.2 数据库设计204.2.1 数据库设计的步骤204.2.2 数据库概念结构设计214.2.3 数据库逻辑结构设计234.2.4 数据库物理结构设计234.3 数据存储流程设计244.3.1 网络机器人的基本结构及工作原理254.3.2 从网络机器人的角度对互联网进行划分254.3.3 抓取策略264.4 搜索

13、引擎流程设计284.4.1 搜索引擎总体流程设计284.4.2 检验载入搜索页面合法性294.4.3 搜索功能设计305 搜索引擎实现325.1 JavaBean实现说明325.1.1 数据库连接类MysqlBean325.1.2 分词处理类SpliteWord335.1.3 生成SQL类CreateSql335.1.4 创建ResultBean类CreateResult385.1.5 结果集类ResultBean395.2 调用JSpider实现数据收录405.3 实现搜索页面41结 论45致 谢46参考文献47附录A 英语原文48附录B 英语译文521 绪论1.1 研究的背景及意义自上个世

14、纪90年代以来随着网络化和信息数字化技术的发展,网络上的信息量以几何数量级递增,人们已经无法很轻易地在网络上搜索到自己想要的信息,却陷入了信息过剩的苦恼当中。这时,搜索引擎软件应运而生。搜索引擎是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,并将处理后的信息显示给用户,是为用户提供检索服务的系统。从使用者的角度看,搜索引擎提供一个包含搜索框的页面,在搜索框输入词语,通过浏览器提交给搜索引擎后,搜索引擎就会返回跟用户输入的内容相关的信息列表。如果人们希望在互联网上搜索一些资料,通过搜索引擎就可以快速地查找到你所需要的站点。移动终端近几年发展迅速,Androi

15、d系统的手机占有率已经不可同日而语,所以人们对Android移动应用的需求也越来越大,将搜索应用和Android手机结合将会是一个互联网发展的趋势。1.2 国内外研究现状及发展趋势1.2.1 搜索引擎的发展历史介绍互联网发展早期,以雅虎为代表的网站分类目录查询非常流行。网站分类目录由人工整理维护,精选互联网上的优秀网站,并简要描述,分类放置到不同目录下。用户查询时,通过一层层的点击来查找自己想找的网站。也有人把这种基于目录的检索服务网站称为搜索引擎,但从严格意义上讲,它并不是搜索引擎。1990年,加拿大麦吉尔大学计算机学院的师生开发出Archie。当时,万维网还没有出现,人们通过FTP来共享交

16、流资源。Archie能定期搜集并分析FTP服务器上的文件名信息,提供查找分别在各个FTP主机中的文件。用户必须输入精确的文件名进行搜索,Archie告诉用户哪个FTP服务器能下载该文件。虽然Archie搜集的信息资源不是网页,但和搜索引擎的基本工作方式是一样的:自动搜集信息资源、建立索引、提供检索服务。所以,Archie被公认为现代搜索引擎的鼻祖。自从搜索引擎问世后,搜索引擎技术飞速发展。1994年4月,斯坦福大学的两名博士生,美籍华人杨致远和David Filo共同创办了Yahoo!随着访问量和收录链接数的增长,Yahoo目录开始支持简单的数据库搜索。因为Yahoo!的数据是手工输入的,所以

17、不能真正被归为搜索引擎,事实上只是一个可搜索的目录。Yahoo!中收录的网站,因为都附有简介信息,所以搜索效率明显提高。1996年,二名斯坦福大学的理学博士生拉里佩奇和谢尔盖布林开发了一个对网站之间的关系做精确分析为基础的搜寻引擎,他的使用结果上胜于当时使用的基本搜索技术。Google搜索引擎以它简单,干净的页面设计和最有关的搜寻结果赢得了使用者的拥戴。从此,网上冲浪者在互联网上搜索需要信息的难度大大降低,互联网得到了极大发展。1.2.2 当今互联网搜索引擎巨头的发展状况搜索引擎经过几年的发展和摸索,越来越贴近人们的需求,搜索引擎的技术也得到了很大的发展。搜索引擎的最新技术发展包括以下几个方面

18、:提高搜索引擎对用户检索提问的理解为了提高搜索引擎对用户检索提问的理解,就必须有一个好的检索提问语言,为了克服关键词检索和目录查询的缺点,已经出现了自然语言智能答询。用户可以输入简单的疑问句,比如“how can kill virus of computer?”。搜索引擎在对提问进行结构和内容的分析之后,或直接给出提问的答案,或引导用户从几个可选择的问题中进行再选择。自然语言的优势在于,一是使网络交流更加人性化,二是使查询变得更加方便、直接、有效。就以上面的例子来讲,如果用关键词查询,多半人会用“virus”这个词来检索,结果中必然会包括各类病毒的介绍、病毒是怎样产生的等等许多无效信息,而用“

19、how can kill virus of computer?”,搜索引擎会将怎样杀病毒的信息提供给用户,提高了检索效率。对检索结果进行处理:1、基于链接评价的搜索引擎基于链接评价的搜索引擎的优秀代表是Google,它独创的“链接评价体系”是基于这样一种认识,一个网页的重要性取决于它被其它网页链接的数量,特别是一些已经被认定是“重要”的网页的链接数量。这种评价体制与科技引文索引的思路非常相似,但是由于互联网是在一个商业化的环境中发展起来的,一个网站的被链接数量还与它的商业推广有着密切的联系,因此这种评价体制在某种程度上缺乏客观性。2、基于访问大众性的搜索引擎基于访问大众性的搜索引擎的代表是di

20、rect hit,它的基本理念是多数人选择访问的网站就是最重要的网站。根据以前成千上万的网络用户在检索结果中实际所挑选并访问的网站和他们在这些网站上花费的时间来统计确定有关网站的重要性排名,并以此来确定哪些网站最符合用户的检索要求。因此具有典型的趋众性特点。这种评价体制与基于链接评价的搜索引擎有着同样的缺点。3、去掉检索结果中附加的多余信息有调查指出,过多的附加信息加重了用户的信息负担,为了去掉这些过多的附加信息,可以采用用户定制、内容过滤等检索技术。确定搜索引擎信息搜集范围网上的信息浩如烟海,网络资源以十倍速的增长,一个搜索引擎很难收集全所有主题的网络信息,即使信息主题收集得比较全面,由于主

21、题范围太宽,很难将各主题都做得精确而又专业,使得检索结果垃圾太多。这样以来,垂直主题的搜索引擎以其高度的目标化和专业化在各类搜索引擎中占据了一系席之地,比如象股票、天气、新闻等类的搜索引擎,具有很高的针对性,用户对查询结果的满意度较高。作者认为,垂直主题有着极大的发展空间。1.3 本研究的内容及研究方案课题完成基于Android客户端的WEB搜索引擎特点和设计方法研究,完成互联网信息录入和关键字分词、搜索。课题内容如下:1、搜索器:其功能是在互联网中漫游,发现和搜集信息。2、索引器:其功能是理解搜索器所搜索到的信息,从中抽取出索引项,用于表示文档以及生成文档库的索引表。3、检索器:其功能是根据

22、用户的查询在索引库中快速检索文档,进行相关度评价,对将要输出的结果排序,并能按用户的查询需求合理反馈信息。4、用户接口:其作用是接纳用户查询、显示查询结果、提供个性化查询项。5、基于Android客户端的WEB浏览。课题研究方案:对于课题理论研究部分,通过查找相关资料,进行逻辑推演,得出结论。对于搜索引擎设计和实现部分,要参考现今主流的技术、关键字分词算法,给出详细的设计方案并实现。搜索引擎采用Java、JSP、Tomcat开发环境,数据存储采用MySQL和Sequoiadb数据库。2 搜索引擎相关技术2.1 JSpider软件2.1.1 JSpider软件介绍JSpider是一个纯Java编

23、写的高度可配置和可定制的网络蜘蛛引擎。你可以通过JSpider检查提供的网站是否出错,可以对提供的网站内部的链接进行检查,分析提供站点的结构,也可以通过JSpider下载一个完整的网站。Jspider的扩展性非常强大,你也可以自己定制一个JSpider插件来完成指定的功能。2.1.2 JSpider软件工作原理如果把互联网比喻成为一个蜘蛛网,那么,类似Jspider的软件就像一只蜘蛛一样,在互联网上孜孜不倦地遍历互联网的上各个站点,然后将其指定内容存储到数据库当中。JSpider软件又被叫作网络爬虫。网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬

24、虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件,流程如图2.1所示。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到遍历完所有链接时停止。另外,所有被爬虫抓取的网页将会被存储到数据库当中,进行一定的分析、过滤,并建立索引,以便之后的查询和检索。图2.1 JSpider工作原理2.2 Java、JSP和Android介绍2.2.1 Java

25、介绍Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。Java由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。平台Java平台由

26、Java虚拟机(Java Virtual Machine,简称JVM)和Java 应用编程接口(Application Programming Interface,简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼

27、容。“Java 语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java 平台是基于 Java 语言的平台。这样的平台非常流行。因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。2.2.2 Android介绍Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开

28、放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。

29、Android系统架构和气操作系统一样,采用了分层的架构。从图2.2看,Android分为四个蹭,从高层到底层分别是应用程序曾、应用程序框架层、系统运行库层和Linux内核层。图2.2 Android分层Android应用程序框架,开发人员可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应

30、用程序框架为开发者提供服务。2.3 SQL数据库访问技术开发一个成功的搜索引擎,数据库扮演着一个重要的角色。从Jspider遍历并下载网站开始,就要求数据库必须能承受大数据数量、长时间数据插入,保证快速查找指定关键字段和保持数据库长期稳定性。数据库是搜索引擎的核心部分之一,涉及到搜索数据的完整性和实时性。搜索引擎需要一种高效、安全的存取方式访问数据库里的内容,本搜索引擎采用传统数据库Mysql和新型Nosql数据库Sequoiadb做为解决方案,使用标准的SQL(结构化查询语言)和Java提供的接口驱动的方式存取数据库。2.3.1 传统关系型数据库MySQL1、MySQL简介:MySQL是一个

31、关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库2、关系型数据库介绍在关系型数据库中数据以行和列的形式存储,以便于用户理解,这一系列的行和列被称为表,一组表便组成了数据库。在关系数

32、据库中:各数据项之间用关系来组织,关系是表之间的一种连接,通过关系,我们可以更灵活地表示和操纵数据;另外,用户可以非常方便的用查询来检索数据库中的数据,一个Query是一个用于指定数据库中行和列的SELECT语句。关系数据库是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作集合和完整性约束三部分组成。关系操作分为关系代数、关系演算、具有关系代数和关系演算双重特点的语言(SQL语言)。完整性约束提供了丰富的完整性:实体完整性、参照完整性和用户定义的完整性。实体完整性规则:若属性A是基本关系R的属性,则属性A不能取空值。参照完整性:若属性(属性组)F是基本关系R的外码,它与基本关系S的主

33、码Key相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:空、.或者取空值(F的每个属性值均为空值);关系代数的运算按运算符的不同主要分为传统的集合运算和专门的关系运算两类。集合运算有二目运算,包括并、交、差、广义笛卡尔积四种运算。专门的关系运算包括选择、投影、连接、除等。根据关系系统支持关系程度不同,可以把关系系统分为四类:表式系统、(最小)关系系统、关系完备系统、全关系系统。表式系统:只支持关系数据结构(即表),不支持集合级的操作。(最小)关系系统:支持关系数据结构,它支持关系数据结构和选择、投影、连接三种关系操作。关系上完备的系统这类系统支持关系数据结构和所

34、有的关系代数操作(功能上与关系代数等价)。2.3.2 NoSQL Sequoiadb数据库1、Sequoiadb简介Sequoiadb数据库是由巨杉公司自主研发的一款具有完全自主知识产权的大数据数据库内核。Sequoiadb数据库是一款非关系型型数据库,对比传统的关系型数据库,Sequoiadb数据库能更好地支持分布式数据存储、高并发性数据操作,而且未来对于数据库的扩容成本也较传统数据库低。2、NoSQL数据库介绍NoSQL = Not Only SQL ,意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的

35、数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。随着互联网web2.0网站的兴起,非关系型的数据库成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。NoSQL数据库特点:1) 它们可以处理超大量的数据。2) 它们运行在便宜的PC服务器集群上,PC集群扩充起来非常方便并且成本很低,避免了“sharding”操作的复杂性和成本。3) 它们击碎了性能瓶颈,NoSQL的支持者称,通过NoSQL架构可以省去将Web或Java应用和数据转换成SQL友好格式的时间,执行速度变得更快。4) 没有过多的操作,虽然NoSQL的支持者也承认关系数据库提供了无可比拟的功能集合,

36、而且在数据完整性上也发挥绝对稳定,他们同时也表示,企业的具体需求可能没有那么多。3、NoSQL数据库比较关系型数据库优点:(1)易扩展NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。(2)大数据量,高性能NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用 Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的 C

37、ache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。(3)灵活的数据模型NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。(4)高可用NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。2.4 JSP技术2.4.1 JSP语言介绍JSP(Java Server Pages)是由Sun Microsystems公司倡导

38、、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。JSP其根本是一个简化的Serlet设计,他实现了Html语法中的java扩张(以 形式)。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后

39、将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。JSP页面由HTML代码和嵌入其中的Java代码所

40、组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。2.4.2 JSP优势1、一次编写,到处运行。除了系统之外,代码不用做任何更改。2、系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。3、强大的可伸缩性。从只有一个小的

41、Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。4、多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。5、支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。2.5 WEB开发轻平台-Tomcat简

42、介Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总能在Tomcat中得到体现。与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和JSP文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB

43、-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和JSP或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。 在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为Servlet

44、文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。3 系统分析3.1 搜索引擎说明3.1.1 搜索引擎描述本研究开发的系统名为基于Android客户端的搜索引擎开发实现。搜索引擎的开发环境为JDK1.6.0和Tomcat,利用Android浏览器插件实现WEB浏览,也可以通过传统的桌面浏览器访问搜索的始页面。3.1.2 搜索引擎开发背景搜索引擎是一种用于帮助Internet用户查询信息的搜索工具,它以一定的策

45、略在Internet中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的目的。在人类进入网络时代以前,各个行业普遍感觉信息匮乏的问题,这主要是由于缺乏信息交流的方式。Internet的出现在很大程度上解决了这一问题,但很多人仍感到缺乏他们所需要的信息。而与此同时,相应的信息在Internet上却大量存在着。真正的问题出在人们在如此大的信息海洋里难以找到他们所需要的准确信息。因此,搜索引擎便成为Internet发展的关键性条件。正如大海里蕴藏了丰富的资源,但人们却因为没有先进的工具而无法获得、利用这些资源。Internet作为一个信息的海洋,人们用浏览器挨

46、个网页寻找的方法将很难找到准确的信息,而只能是浪费大量的时间和网络资源。搜索引擎将 Internet网中对使用者有用的信息提取出来,无异于从Internet中提炼真金。3.2 开发任务3.2.1 搜索引擎的设计要求和目标开发一个优秀的搜索引擎,要求数据实时更新,中文分词结果符合用户预期,搜索速度迅速,各个客户端之间兼容性好。设计要导到如下目标:1、执行速度快,对于数据库里成千上万条记录,要求快速、准确地查询出用户所希望的结果集,数据库的稳定性至关重要,设计一个良好的逻辑关系非常重要。2、安全、稳定性高,对于不同的搜索内容必须保证系统的稳定。3、中文分词符合词意,对于一个中文搜索引擎,中文分词是

47、一个重要的设计环节,由于中文的特殊性,使得中文搜索引擎在设计时必须考虑中文词汇的有意义性,否则搜索结果会与用户当初设想的相差太远。4、数据记录保持更新,搜索引擎里面的数据内容必须在若干周期内重新更新,保证搜索结果集的实时性。5、多客户端访问,开发客户端过程中考虑各个客户端之间的兼容性。6、操作简单、使用界面具有人性化,清晰明了。3.2.2 搜索引擎的设计原则为了开发一个搜索速度快、高性能的搜索引擎,需要遵循如下设计原则:1、数据库设计原则,充分考虑系统的性能,较少数据冗余,充分考虑各实体的构成和各字段的属性,力求最优设计。2、完整性、真实性、实时性原则,搜索引擎设计时保证数据的完整性、真实性、实时性,搜索的结果集必须为有效连接。3、简单性原则,系统程序要求在保证完整性原则的情况下从简设计,系统必须易于使用,学习成本低。4、面向对象原则,系统设计符合面向对象设计原理,模块化,易于实现和扩展,维护成本低。5、界面友好,界面美观、大气、易用。3.3 用户需求分析3.3.1 用户使用搜索功能习惯用户在使用搜索引擎时,主要原因是在生活中遇到不明白的事物,急需在互联网中查找他想要的答案。网上用户使用搜索引擎时的习惯如图3.1所示。图3.1 用户使用搜索引擎分析用户使用搜索引擎的习惯分析:1) 用户在生活中遇到问题;2)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号