基于struts2,spring,lucene灵活性搜索平台的搭建---毕业论文.doc

上传人:滴答 文档编号:1273799 上传时间:2019-01-26 格式:DOC 页数:81 大小:16.80MB
下载 相关 举报
基于struts2,spring,lucene灵活性搜索平台的搭建---毕业论文.doc_第1页
第1页 / 共81页
基于struts2,spring,lucene灵活性搜索平台的搭建---毕业论文.doc_第2页
第2页 / 共81页
基于struts2,spring,lucene灵活性搜索平台的搭建---毕业论文.doc_第3页
第3页 / 共81页
基于struts2,spring,lucene灵活性搜索平台的搭建---毕业论文.doc_第4页
第4页 / 共81页
基于struts2,spring,lucene灵活性搜索平台的搭建---毕业论文.doc_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、基于 struts2,spring,lucene 灵活性搜索平台的搭建 本 科 毕 业 论 文 个性化搜索引擎及相关技术研究 基于 struts2,spring,lucene 灵活性搜索平台的搭建 Personalized search engine and related technology research Building of flexible search engine platform based on struts2, spring and Lucene 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师: 年 月 基于 struts2,s

2、pring,lucene 灵活性搜索平台的搭建 I 摘 要 随着互联网信息爆发式增长,搜索引擎的负担也越来越重,目前出现了各种的搜索引擎包括全文搜索,垂直搜索,整合搜索等,它们的问题域虽然不一样,但是它们都面临一个同样的问题,如何提高检索速度,增加用户体验,因此如何能在短时间内从浩瀚的信息中获取用户想要的信息是一个很大挑战。 个性化搜索引擎不仅能在 短时间内提供搜索结果,并且还可以对搜索结果进行过滤筛选使得结果更加符合用户需求。目前 JavaEE 已经成长为了一个工业化的平台,在它上面也涌向出了大量优秀的框架,本文主要利用 JavaEE 领域中开源的优秀框架来搭建一个灵活的个性化搜索引擎。在实

3、践过程中,本系统采用 Struts2 框架作为表现层框架, Spring 作为应用层框架,lucene作为领域层的框架,通过 Activemq 消息中间件实现了服务器对查询关键字的异步处理,通过 AJAX 技术实现了客户端浏览器和服务器端的异步通信,同时采用了优秀的开源缓存系统 Ehcache 对搜索结果进行了缓存。 最后,本文通过实践描述了如何采用优秀的开源框架和设计模式构建一个灵活的可扩展的搜索引擎平台,并且实现了预期的目标。 关键词: 搜索引擎;设计模式; AJAX; JMS;缓存 基于 struts2,spring,lucene 灵活性搜索平台的搭建 II Abstract With

4、the explosive growth of internet information,the search engine will encounter the increasing burden.The present situation of the various search engines, including full-text search, vertical search, integrated search, although their problem is not the same domain,they are facing a the same problem,ho

5、w to improve the retrieval speed, increase the user experience.So how search engine can get the information from vast information is a serious challenge. The personalized search engine will not only provide search results in a short period of time, and can also filter the search results to more them

6、 in line with customer needs.JavaEE currently has grown to an industrialized platform,and a large number of excellent framework swarmed on it.This dissertation mainly forces on how to build a flexible and scalable personalized search engine using the JavaEE opensource framework.In practice,this syst

7、em using the struts2 as the presentation layer framework,spring as the application layer framework,and lucene as the domain layer framework.at the mean time,this system also use the activemq message middleware to make the asynchronous data process, use the AJAX technology to achieve the client and s

8、erver-side asynchronous communication, and use the excellent open-source caching system Ehcache to cache search results. Finally,This article describes how to practice the use of good open source framework and design patterns to build a flexible and scalable platform for search engines,whats more ,i

9、t realize the expectant aim. Key words: Search Engine;design patterns; AJAX; JMS; cache. 基于 struts2,spring,lucene 灵活性搜索平台的搭建 III 目录 第一章 概述 . 1 1.1 搜索引擎背景 . 1 1.2 相关技术框架 . 2 1.3 本文的主要内容 . 2 第二章 系统层级架构 . 4 2.1 系统架构分析 . 2 2.2 表现层 . 5 2.2.1 Struts2 框架 . 6 2.2.2 界面设计 . 8 2.2.3 查询模块设计 . 9 2.3 应用层 . 11 2.3

10、.1 Spring 框架 . 11 2.3.2 索引模块设计 . 14 2.3.3 查询模块设计 . 16 2.4 领域层 . 17 2.4.1 lucene 框架 . 18 2.4.2 索引模块设计 . 21 2.4.3 查询模块设计 . 25 2.5 数据源层 . 28 2.5.1 系统数据源分析 . 28 2.5.2 数据源层设计 . 28 第三章 JMS 异步设计 . 29 3.1 JMS . 30 3.2 ActiveMQ . 30 3.3 JMS 异步模块设计 . 33 3.3.1 部署 ActiveMQ . 33 3.3.2 测试 ActiveMQ . 34 3.3.3 集成 A

11、ctiveMQ 与 Spring . 35 3.3.4 查询模块异步设计 . 37 基于 struts2,spring,lucene 灵活性搜索平台的搭建 IV 第四章 AJAX 异步设计 . 40 4.1 AJAX . 40 4.2 JQuery. 41 4.3 Ajax 模块异步设计 . 42 4.3.1 Suggest 功能分析 . 42 4.3.2 Suggest 功能设计 . 43 4.3.3 Suggest 效果 . 46 第五章 系统缓存设计 . 48 5.1 缓存 . 48 5.1.1 缓存的概念 . 48 5.1.2 缓存的范围 . 48 5.1.3 Ehcache . 49

12、 5.2 系统性能分析 . 50 5.3 缓存模块设计 . 51 5.3.1 缓存键设计 . 51 5.3.2 类的设计 . 52 5.4 缓存效果 . 55 第六章 总结 . 57 致谢 . 58 参考文献 . 59 基于 struts2,spring,lucene 灵活性搜索平台的搭建 V Contents Chapter 1 Introduction . 1 1.1 Background of Search Enginee. 1 1.2 Related Framework Introduction. 2 1.3 Content . 2 Chapter 2 System Architect

13、ure . 4 2.1 System Architecture Analysis. 5 2.2 Presentation Layer . 5 2.2.1 Struts2 Framework . 6 2.2.2 View Design . 8 2.2.3 Query Module Design . 9 2.3 Application Layer.11 2.3.1 Spring Framework .11 2.3.2 Index Module Design. 14 2.3.3 Query Module Design . 16 2.4 Domain Layer . 17 2.4.1 lucene F

14、raemwork. 18 2.4.2 Index Module Design. 21 2.4.3 Query Module Design . 25 2.5 Datasource Layer . 28 2.5.1 Datasource Analysis . 28 2.5.2 Datasource Design . 28 Chapter 3 JMS Asynchronous Design . 29 3.1 JMS. 30 3.2 ActiveMQ . 30 3.3 JMS Asynchronous Module Design . 33 3.3.1 Deploy ActiveMQ . 33 3.3.

15、2 Test ActiveMQ . 34 3.3.3 ActiveMQ Integrated With Spring . 35 3.3.4 Query Module Asynchronous Design . 37 Chapter 4 AJAX Asynchronous Design . 40 4.1 AJAX . 40 基于 struts2,spring,lucene 灵活性搜索平台的搭建 VI 4.2 JQuery. 41 4.3 Ajax Module Asynchronous Design . 42 4.3.1 Suggest Function Analysis . 42 4.3.2

16、Suggest Function Design . 43 4.3.3 Suggest Effect . 46 Chapter 5 System Cache Design . 48 5.1 Cache . 48 5.1.1 Cache Conception . 48 5.1.2 Scope Of Cache. 48 5.1.3 Ehcache . 49 5.2 System Performance Analysis . 50 5.3 Cache Module Design . 51 5.3.1 CacheKey Design. 51 5.3.2 Class Design. 52 5.4 Cach

17、e Effect. 55 Chapter 6 Summary. 57 Acknowledgement . 58 Reference . 59 基于 struts2,spring,lucene 灵活性搜索平台的搭建 1 第一章 概述 1.1 搜索引擎背景 搜索引擎是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,为用户提供检索服务的系统。 搜索引擎并不真正搜索互联网,它搜索的实际上是预先整理好的网页索引数据库。真正意义上的搜索引擎,通 常指的是收集了互联网上几千万到几十亿个网页并对网页中的每一个词(即关键词)进行索引,建立索引数据库的全文搜索引擎。当用户查找某

18、个关键词的时候,所有在页面内容中包含了该关键词的网页都将作为搜索结果被搜出来。在经过复杂的算法进行排序后,这些结果将按照与搜索关键词的相关度高低,依次排列。 Internet 的出现改变了全球通讯和信息资源的共享方式,它将各种各样的资源整合联系在一起,构成了一个巨大的网络。而互联网的快速发展带来的是网上信息爆炸性的增长。 2008年, Google 宣称其目前索引的网页数量已经达到一 万亿,这些信息都具有无固定结构、分布无规律性和动态性极强的特点。虽然 Internet 上的信息量每天成指数级增长,但对于用户只有少数是相关或有用的。如何将这些信息有效的组织利用,让人们可以比较容易的找到自己所需

19、的资源,这已经成为了现代互联网研究的关键课题。 搜索引擎正是在这种情况下应运而生,它以一定的策略在互联网中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的目的。但是,随着信息多元化的增长,千篇一律的给所有用户提供同样的搜索结果已经不能满足特定用户更深入查询的需 求。通常,不同领域背景、不同知识结构的用户对文档相关性的判断及检索结果的要求是不同的。因此,未来的搜索引擎,必将体现这种 “个性化 ”的信息检索,减少垃圾信息,提高查准率,并能够根据用户背景、兴趣爱好、行为、检索目的等信息,检索出适量的、高质量的查询结果。 针对上述问题,本项目组主要研究搜索引擎

20、的相关技术,及如何充分挖掘用户浏览网页过程中的各种信息,来构造用户兴趣模型,对检索结果进行过滤、排序,选择更有针对性的信息,提高用户对检索的满意度。并尝试搭建个性化搜索引擎平台,将理论研究转化为实际产品。 一般而言, 可以按照搜索引擎对网页索引技术不同,将其分为若干阶段 1。 第一阶段的代表系统式 1994 年出现的 Yahoo 搜索引擎,当时处于搜索引擎的早期阶段,网页资源总量较低,爬虫技术尚不成熟,所以类似于 Yahoo 等搜索引擎广泛地采用人工标引基于 struts2,spring,lucene 灵活性搜索平台的搭建 2 等辅助技术来对网页内容进行标注,同时在检索的时候,也主要借助系统的

21、信息检索算法,如词语文档频率等。 第二阶段的代表系统式 1998 年推出的 Google 搜索引擎。此时的互联网已经进入快速发展的新阶段,网页数量激增,所以 Google 推出了以网页超链接分析为基础的 Pagerank 算法,以此来完成网页权重的表示和检索结果的排序。 现在正处于搜索引擎的第三阶段,代表性的系统还没有出现,但是这一时期的搜索引擎广泛地采用了现代信息检索技术的发展成果,在用户接口,网页权重表示和结果排序技术方面取得了较大的完善和改进。其中,广受重视的就是个性化搜索引擎的出现和推广。 1.2 相关技术框架 本系统基于目前比较流行和稳定的 J2EE 平台,采用了目前 J2EE 中流

22、行的 IOC,AOP 模式,优秀的开源框架,包括 Struts2,spring2.x,lucene2.x,以及 Ehcache缓存系 统和 activemq1.5 JMS消息中间件。 Struts22框架是一个优秀的 MVC 表现层框架,它使得视图逻辑和业务逻辑相互分离,有利于系统的解耦,本系统采用 Struts2 可以做到搜索界面灵活替换,而不会影响到检索和查询逻辑的实现。 Spring3是 J2EE 非常流行的轻量级的 IOC 容器,它提供了丰富的企业级应用程序所需要的服务,管理了系统中建立索引和查询的无状态功能性组件的生命周期。 Lucene4框架是一款优秀的开源搜索引擎库,提供了搜索引

23、擎具备的基础特性,简化了搜索引擎的设计。本系统 采用 Lucene 框架对数据源进行索引,同时封装 lucene 对索引进行查询的操作。 Ehcache5是一款开源的缓存系统,它支持集群缓存,提供了丰富的特性。本系统采用Ehcache 缓存用户搜索的前 30 条记录,减少磁盘 IO 操作。 ActiveMQ6是一个性能优良的 JMS 消息中间件,它提供了企业消息服务的支持。ActiveMQ 对异构系统的整合发挥了关键的作用。本系统采用 Activemq 异步的处理用户查询的关键字,方便对用户的搜索行为进行统计。 1.3 本文的主要内容 本文主要基于如何搭建一个灵活的 可扩展的搜索引擎平台,结合

24、目前 J2EE 流行的Struts2,Spring,lucene 框架,采用面向对象的设计方式,分别从系统层级结构, Ajax 异步设计,基于 struts2,spring,lucene 灵活性搜索平台的搭建 3 JMS 异步设计以及缓存设计四个方面描述了构建灵活性搜索引擎平台的过程。 分层结构方面主要考虑了领域逻辑如何封装以及领域逻辑如何组织的问题,领域逻辑的封装采用 pojo facade 模式,领域逻辑的组织采用了领域模型模式,其中通过外观模式封装了建立索引和查询的逻辑,这样使得子系统更加容易使用。 异步设计主要是为了提高系统的响应性,改善用户体验,其中采用 ajax 技术实现客户端浏览器与服务器端的通信,同时采用 JMS 实现服务器端的异步通信,其中 Ajax 采用开源的JavaScript 框架 JQuery 实现,而服务器端的异步处理采用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。