全 文 索 检 系 统.docx

上传人:b****4 文档编号:12344582 上传时间:2023-04-18 格式:DOCX 页数:29 大小:497.57KB
下载 相关 举报
全 文 索 检 系 统.docx_第1页
第1页 / 共29页
全 文 索 检 系 统.docx_第2页
第2页 / 共29页
全 文 索 检 系 统.docx_第3页
第3页 / 共29页
全 文 索 检 系 统.docx_第4页
第4页 / 共29页
全 文 索 检 系 统.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

全 文 索 检 系 统.docx

《全 文 索 检 系 统.docx》由会员分享,可在线阅读,更多相关《全 文 索 检 系 统.docx(29页珍藏版)》请在冰豆网上搜索。

全 文 索 检 系 统.docx

全文索检系统

郑州大学升达经贸管理学院

学士学位论文

基于lucene

的全文索检系统

姓名

丁弼东

培养院系

资讯系

班级

05计科二班

学号

2005057235

指导教师

王芳讲师

完成时间

2009年4月

 

摘要

随着网络的蓬勃发展,各种各样的资源都能在互联网上搜索到,做的很成功的网络搜索引擎有Google,XX等,让人们可以很轻松的搜到自己想要的东西。

在我们生活中越来越多的人因工作或其它的事,而不能及时记住自己电脑里的所有东西存放路径,人们总是希望通过一个搜索系统来帮助自己查找相关文件,windows自带的搜索只能搜到某个文件,而不能再细致的搜索。

为了更好的为用户服务,Lucene系统提供统一的搜索和索引建立,通过Web方式向用户提供搜索本地磁盘功能。

关键字:

全文索检,倒排索引,语言分析,查询分析

 

Abstract

Weliveinagrowingnumberofpeopleinworkorothermatter,andcannotrememberhisowncomputerstoreinthepathofeverything,peoplealwayswantthroughasearchsystemtohelptheirsearch-relateddocuments,windowsbuilt-insearchonlyfoundafile,ratherthandetailedsearchagain.Inordertobetterservicesforusers,Luceneprovidesaunifiedindexofthesearchandsetup,throughtheWebtoprovideuserswithsearchfeatureslocaldisk.

WiththevigorousdevelopmentofvariousresourcescanbesearchedontheInternet,todotheverysuccessfulInternetsearchengineGoogle,Baidu,etc.sothatpeoplecaneasilysearchtoyourwant.

 

Keywords:

Lucenejavafull-textserchengineChinesewordsegment

 

目录

前言1

第1章绪论1

1.1选题意义2

1.2本题研究的意义2

1.3JavaWeb应用概述2

1.4关键技术介绍3

1.4.1JSP技术概述3

1.4.2Struts概述4

1.4.3Spring简介4

第2章系统分析5

2.1系统概述5

2.1.1开发目的5

2.1.2开发环境5

2.2系统可行性分析5

2.2.1可行性分析5

2.2.2任务概述6

2.2.3数据流图6

2.2.4数据字典6

第3章系统设计6

3.1系统功能分析7

3.2数据库设计7

3.2.1数据库系统(DBMS)原理7

3.2.2创建与连接数据库8

3.3总体框架设计9

第4章用户自服务管理具体实现12

4.1用户登录管理12

4.1.1用户登录12

4.2账单管理14

4.2.1清单查询15

4.2.2账务账单日报15

4.2.3账务账单月报16

4.2.4账务账单年报16

4.3客户信息管理16

4.3.1我的信息16

4.3.2我的账户16

4.4品牌咨询17

结论17

附录17

附录A:

eclipse的安装17

附录B:

tomcat的安装及配置18

参考文献20

谢辞20

第1章引言

进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。

传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端――服务器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。

而另一种,也是本毕业设计所采用的,是称为浏览器――服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。

Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充斥于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络计划。

ARPA计划尝试建设一个网络系统,它可将各种不同厂商的电脑连接起来。

随着这个计划的成功,各学术单位,研究机构也纷纷与ARPA计划所建立的ARPANet连接。

到了20世纪80年代,Internet这个名词因势产生,它代表着这十年来所构建涵盖全球各地的网络系统。

从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统。

最初的Internet资源服务都还停留在文本模式,1989年,量子物理实验室(CERN)下的一个研究小组着手开发一种全新的Internet服务,它可以在网络上传送图片、文本、影像、声音等多媒体数据。

于是由TimBernersLee领导的小组开发出了一种主从、分布式的网络服务系统,这就是WWW,俗称“万维网”。

所谓WWW其实就是连上Web服务器访问资源,取得的内容就是所谓的“主页”(HomePage)。

进入的网页通常不会只有一页,而是整个网站的内容。

“网站”是一种呈现在网络上的新兴媒体,通过Internet已经成为一个实时的,多媒体的信息传播渠道。

它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。

目前,人们渐渐开始把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet在网站上发表自己对社会对生活的理解和建议。

本文设计实现一个基于Web实现的本地搜索系统,具有用户自操作的相关功能。

1.1选题意义

目前搜索引擎正在迅猛的发展,全方位的市场竞争,提高竞争力、增加客户满意度、减少客户流失、提高效益成为各搜索大头必须要考虑的问题。

为了更好的为用户服务,搜索引擎都会提供更加人性化,更加高效的服务。

但是在个人电脑上,用户的资料通常会存放的杂乱无章,关键时刻浪费了很多的时间,本课题就试图使用java技术来实现一个最基本的本地磁盘搜索服务。

1.2本题研究的意义

我们可以看到,随着网络的发展日趋成熟,企业工作的高效率,电脑个人用户所需的资料也越来越多,用户需要在个人电脑上搜索已有的资料来提高自己的工作效率。

正确认识Web技术在企业中的重要地位,以少量的时间去搜索企业的信息,并架设一定范围的商务网络,以此来制定长远发展战略,使企业与顾客间的经济活动变得更灵活、更主动。

本论文就是以搜索服务系统为题,给予了人们在繁忙而没时间整理资料致使工作效率下降的问题。

1.3JavaWeb应用概述

JavaWeb应用的核心技术是JavaServerPage和Servlet。

此外,开发一个完整的JavaWeb应用还涉及以下概念及技术:

􀁺JavaBean组件

􀁺EJB组件

􀁺自定义JSP标签

􀁺XML

􀁺Web服务器和应用服务器

图1-1显示了JavaWeb应用的结构。

图1-1

1.4关键技术介绍

本系统是基于JDBC+Lucene技术开发搜索服务系统,其运用到的Web技术jsp以及Lucene等。

.4.1JSP技术

JavaServerPages(JSP)技术提供了一种简单快速的方法来创建显示动态生成内容的Web页面。

由业界处于领先地位的Sun公司制定了相关的JSP技术规范,该规范定义了如何在服务器和JSP页面间进行交互,还描述了页面的格式和语法。

JSP页面使用XML标签和scriptlets(一种使用Java语言编写的脚本代码),封装了生成页面内容的逻辑。

它将各种格式的标签(HTML或者XML)直接传递回响应页面。

通过这种方式,JSP页面实现了页面逻辑与其设计和显示的分离。

JSP技术是Java系列技术的一部分。

JSP页面被编译成servlet,并可能调用JavaBeans组件(beans)或EnterpriseJavaBeans组件(企业beans),以便在服务器端处理。

因此,JSP技术在构建可升级的基于web的应用程序时扮演了重要角色。

JSP页面并不局限于任何特定的平台或web服务器上。

JSP规范在业界有着广泛的适应性。

JSP技术是行业协作的结果,它的设计是开放的,符合行业标准的,并支持绝大多数的服务器、浏览器和相关工具。

由于使用可重用的组件和标签取代了对页面本身脚本语言的严重依赖,JSP技术大大加快了开发的速度。

所有JSP的实现均支持以Java编程语言为基础的脚本语言,它有与生俱来的可适应性,支持复杂的操作。

.4.2Lucene简介

Lucene是一个信息检索的函数库(Library),它可以对任何的数据做索引和搜索.不管数据源是什么格式,只要它能被转化为文字的形式,就可以被Lucene所分析利用.也就是说不管是MSword,Html,pdf还是其他什么形式的文件只要你可以从中抽取出文字形式的内容就可以被Lucene所用.你就可以用Lucene对它们进行索引以及搜索,它是一个高性能的java全文索检工具包,使用的是倒排文件索引结构

第2章开发环境介绍

2.1系统概述

电信运营用户自服务系统是电信支撑运营系统的一部分,目前电信运营商面对日益激烈的全方位市场竞争,提高竞争力、增加客户满意度、减少客户流失、提高效益成为电信运营商必须要考虑的问题。

为了更好的为用户服务,电信系统都会提供统一的用户自服务门户,通过Web方式向用户进行信息发布、业务受理、个性化服务等功能。

用户可以通过自服务门户获得业务导航支持、产品定购支持、业务搜索、个性化设置、费率查询、产品定购及费用明细查询、总帐查询和支付帐户维护等一系列功能,用户通过统一的门户还可以更好地接受各种增值业务的服务。

.1.1开发目的

此系统开发是为了更好的为用户服务,同时也让用户了解电信,对于目前电信运营商面对日益激烈的全方位市场竞争,提高竞争力、增加客户满意度、减少客户流失、提高效益。

.1.2开发环境

采用B/S架构,使用j2se1.5.08运行环境

服务器操作系统:

Solaris

数据库服务器:

mysql

Web服务器:

Tomcat

采用的技术:

JSP,,Servlet,JDBC

2.2系统可行性分析

可行性研究是系统开发的前期工作,经过仔细地分析决定问题是否值得解决开发。

用最小的代价在尽可能短的时间内确定问题是否能够解决。

.2.1可行性分析

首先是技术可行性,计算机及网络技术、信息安全技术和电子支付等技术的发展为WebMIS提供了技术基础,利用现在比较成熟的JSP语言以及Struts架构,由OracleServer作为后台的数据库管理可以很方便地在Linux或在Windows9X/NT/2000下实现用户自服务管理系统。

其次是经济可行性,WebMIS淘汰了传统的基于文本、表格等纸介质的手工处理,大提高了执行效率,节省了时间和资金。

至于操作可行性,用户只须在客户端拥有一个浏览器就可以轻松查询自已的账户消费,以及电信的业务和用户资料。

.2.2任务概述

根据我和老师以及对目前用户自服务系统一些可以优化的地方,我想实现系统以下几个功能:

界面友好:

以清晰,明朗的界面显示用户信息和品牌等,

提示功能:

在有明显输入提示功能(比如要求输入时输入框不能为空等);

减少重复输入:

系统涉及的数据需求,只一次输入此后调用成绩库即可;

方便的查询:

可由用户账号账户、消费日期,使用下拉列表选择及用户输入查询;

随时修改错误输入:

数据建立后,发现有需要修改的地方,可方便地修改;

.2.3数据流图

.2.4数据字典

选择用户信息作为数据元素为例具体说明:

名字:

用户信息

别名:

描述:

用户的详细资料

定义:

登陆名+真实姓名+登陆密码+email+性别+住址+注册日期+电话+邮政编码+备注+角色

其他数据元素如:

成绩信息、课程信息的数据字典略。

第3章系统设计

系统设计主要就是系统总体的规划,主要包括系统功能分析、数据库分析、总体框架设计等。

3.1系统功能分析

系统需求实现可以分为四个小模块。

其整体模块对应的用例图如下:

图3-1

其具体功能如下述

1.体育项目管理:

用户输入登录名和密码,提交到服务器,其结果是服务器验证输入信息,并将登录信息存放到会话状态中。

2.赛事管理:

用户在修改页面更改相关信息,提交到服务器,其结果是服务器将修改后用户信息更新到数据库。

3.比赛管理:

用户选择要查询的业务帐号、资费政策以及日期,点击提交按钮,提交到服务器,其结果是服务器将该业务帐号对应日期和资费政策的清单信息返回给客户。

4.国家管理:

用户多浏览器上点击资费列表的超链接,提交到服务器,其结果是服务器将该所有资费信息以分页列表的形式返回给客户。

5.参赛队管理

6.用户管理

7.权限管理

8.角色管理

3.2数据库设计

数据库是用来存储数据库对象和数据的地方。

为了使网站能够提供高级完善的服务,网站必须拥有强大数据管理与处理的能力,这就需要使用数据库。

根据前面的数据库软件设计的分析,基于数据的频繁使用等方面的考虑,本系统采用MySQL数据库。

3.2.1数据库系统(DBMS)原理

数据库系统是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。

它通常由软件、数据库和数据管理员组成。

其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。

数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。

这些数据为多个应用服务,独立于具体的应用程序。

数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。

数据库管理系统是一种系统软件,它的主要功能是维护数据库并有效地访问数据库中任意部分数据。

对数据库的维护包括保持数据的完整性、一致性和安全性。

3.2.2创建与连接数据库

1.建立数据库

数据库设计的任务是确定系统所需的数据库。

数据库是表的集合,通常一个系统只需一个数据库。

由于用户自服务管理系统作为电信运营支撑系统的一部份,它是依赖于整体系统,下面是woss整体模型定义

 

图3-2

据E—R图通过对关系模型的转化确定数据库所含表及字段(本课题是实现直播发布系统的后台管理模块,其需要的表有):

表名

描述

Users

具体的用户的基本信息,代表现实世界中一个真实的人

Products

存放品牌信息的表

RadAcct

FreeRadius服务器充当AAA服务器的角色,所有的NAS请求上下线记录都被存放在RadAcct

RadCheck

用户根据此帐号可以拨号上网

ProductsType

每个品牌都有其对应的类型。

Radreply

限制成员上网规则(如时间,流量)。

PR_Role

用户在系统中的个人身份(0超级管理员Unique,1管理员(营业员),2用户)

PR_Permission

存放页面模块的相关信息

PR_Permi_Role

用户权限表与角色表是多对多的关系,该表为桥表

HV

用于业务帐号(RADCHECK)的序列号

2.连接数据库

本系统基于JDBC+Struts+Spring架构的JSPWeb系统,所以数据源的建立和配置都是在Spring-Config.xml文件中实现的。

在Spring-Config.xml中,元素是用来配置应用所需要的数据源。

数据源负责建立和特定数据库的连接,许多数据源采用连接池机制实现,以便提高数据库访问性能。

其具体代码如下:

class="mons.dbcp.BasicDataSource">

oracle.jdbc.driver.OracleDriver

jdbc:

oracle:

thin:

@192.168.1.250:

1521:

briupdb

briup

briup

3.3总体框架设计

CMS直播发布系统采用了MVC设计模式。

在这里我用JSP+Servlet+JavaBean自己实现的MVC的框架,来实现用户自服务系统的设计,使用Servlet对程序进行整体的流程控制。

1.MVC模式

MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。

在这里我用Struts这个MVC的框架,来开发我的网站,使用Struts对我的程序进行整体的流程控制。

视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML等。

随着应用的复杂性和规模性,界面的处理也变得具有挑战性。

一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。

业务流程的处理交予模型(Model)处理。

比如一个清单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。

在这系统中的View我采用JSP技术,用来显示数据给客户。

模型层:

模型层分为业务逻辑层(Service层)和数据持久层(DAO层)。

业务逻辑层:

是我们逻辑思想的主要展现,是对控制层中的各个分支的具体实现,对事务的控制,调用数据持久层(DAO层)的方法。

这果所说的是servicen层,我们可以看看service层的代码:

publicUseruserLogin(Stringloginname,Stringpassword)throwsCustomerException{

System.out.println("intoService...");

Useruser=null;

try{

user=customerDao.userLogin(loginname,password);

}catch(Exceptione){

e.printStackTrace();

}

returnuser;

}

数据持久层:

我们的操作最终是要与数据库打交道的,对数据库的增、删、改、查等,这些都要依赖数据持久层来完成。

其具体执行代码

publicUseruserLogin(Stringloginname,Stringpassword)throwsException{

//TODOAuto-generatedmethodstub

Sessionsession=super.getSession();

Queryquery=session.createQuery("fromUserwhereloginName=?

andloginPassword=?

");

query.setString(0,loginname);

query.setString(1,password);

return(User)query.uniqueResult();

}

控制(Controller):

可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。

划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。

控制层并不做任何的数据处理。

例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。

由于我们用的是Struts框架,所以我们用Action来控制流程,而不是servlet。

下面我们可以看一具体代码实例:

publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{

try{

request.getSession().invalidate();

}catch(Exceptione){

e.printStackTrace();

}

returnmapping.findForward("true");

}

因此,一个模型可能对应多个视图,一个视图可能对应多个模型。

模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。

如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。

因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。

这实际上是一种模型的变化-传播机制。

模型、视图、控制器三者之间的关系和各自的主要功能。

2.使用DAO模式减少不同层之间的耦合度。

之前的开发可以发现以下问题:

(1)所有的JDBC代码写在JSP页面之中,维护困难

(2)JSP中不应该使用用任何sql包,即:

不能在JSP中直接使用java.sql.*,原因JSP只关注于数据的显示

(3)所有的数据库操作代码最好使用PreparedStatement。

区分:

J2EE的组件层次

客户端->表示层-->业务层-->数据层-->数据库

DAO是Data

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

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1