• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 建筑房产 > 正文

    统一局域网与互联网的搜索引擎的设计与实现

    时间:2020-09-15 07:54:19 来源:达达文档网 本文已影响 达达文档网手机站

    摘要:针对企业内部资源散落在各应用系统中,而使企业资源得不到有效利用问题,设计并实现了统一局域网与互联网的搜索引擎方案。该解决方案基于Intranet VPN技术,采用C/S和B/S混合结构模式,利用本方案设计的数据获取、解析器、分词管理以及权限认证等子系统,获取并整理企业内部各应用系统数据信息,从而使各种数据得到合理利用。对各子系统设计与实现方案及其关键技术进行了深入介绍。

    关键词:搜索引擎;分词管理;权限认证;Lucene分析器

    中图分类号:TP302.1文献标识码:A文章编号:1007-9599 (2011) 04-0000-02

    The Design and Implementation of Unified LAN and the Internet Search Engine

    Huo Renchong1,Du Bin2,Wang Hui3

    (1.Teaching Affairs Office,Shijiazhuang Institute of Railway,Shijiazhuang050041,China;2.Beijing Railway Bureau,Electricity Department of Shijiazhuang,Shijiazhuang050043,China;3.Computer Department,Shijiazhuang Railway Institute,Shijiazhuang050043,China)

    Abstract:Aiming at the problem of enterprise resources distribut in different application systems and result in the resources cannot be used efficiently,a search engine solution is designed and implemented which combines both unified LAN and the Internet.The solution is based on Intranet VPN technology,adops C/S and B/S mixed structure model,uses the subsystems which are designed in this solution,such as catcher,parser,participle management and permissions authenticator and so on.Then we obtains and classfies data from systems in enterprise to make good use of them.The design and implementation of the solution and key technologies are also given in depth.

    Keywords:Search engines;Participle management;Permissions authenticator;

    Lucene analyzer

    一、引言

    随着计算机技术的发展和企业内部信息化需求的不断增长,各个企业及企业内部各个部门都根据自己的业务流程引入不同的企业信息系统,因而企业内部存在很多业务数据库和大量的文文件,这些资源散落在各个应用系统中和服务上,致使企业内部的数据规模越来越庞大。而且这些庞大的数据资源没有得到很好的利用,一方面需要获取檔资源的人员没有办法搜寻到必要的檔,另一方面大量的资源无法被利用,长期闲置,导致了工作效率低下,但在商业竞争日益激烈的今天,企业之间的竞争集中体现在创新和效率上,其本质就是信息和管理的竞争。为了提高管理水平、提高工作效率、确保信息的准确性和快速性,已经成为当代商业竞争准备中迫切需要解决这些问题。

    本文对以上问题分析得出企业各种业务系统和办公系统整体上仅仅考虑系统间的数据交互,没有以资源管理为中心进行结构设计,海量数据白白占据企业内的存储空间得不到利用,在此基础上提出了统一局域网与互联网的搜索引擎的设计方案,并介绍了其关键实现技术。此方案不仅解决找檔难和工作效率低下问题,而且大大扩展了信息技术在企业中应用的广度和深度,为使企业从粗放式管理向精细化管理转变提供了基础保障。

    二、系统设计

    (一)系统总体设计

    企业内外网结合的搜索引擎是基于Intranet VPN(企业内部虚拟网)与互联网相结合和Lucene技术,其总体设计如上图1所示。Intranet是指利用Internet技术建立的企业内部信息网络,它以TCP/IP协议为基础,以Web为核心应用,构成企业内部统一的信息交换平台。VPN(虚拟专用网)是利用开放的公众网络资源建立专用数据传输信道,通过隧道、加密、密钥管理、身份认证等特性,提供安全的端到端数据通信的一种广域网技术。Lucene是一个高性能、可伸缩的信息搜索(IR)库。它可以为应用程序添加索引和搜索能力,Lucene只关注文本的索引和搜索,并且这些事它完成的非常好,因而它可以使得应用程序只针对它的问题域来处理业务规则,而把复杂的索引和搜索实现隐藏在一组简单易用的API之后。

    本系统互联网信息需要采用自动采集引擎将数据信息采集到本地机器,然后再对企业内部虚拟网上和互联网的资源进行格式转化、消重处理,将处理后的信息存入索引库内,对数据库的搜索利用数据库搜索系统进行数据库内部检索。并可按照数据库中的表结构实现多种方式的检索效果。对于网站信息,采用“全文检索服务”,直接对采集到的网页信息检索,此种方式,即各数据源分别索引分别查询。

    (二)系统框架设计。本系统在Eclipse集成开发环境下,基于JavaBeans技术和Sturts、Hibernate、DWR、Ext 框架实现了软件系统的三层架构,如下图2所示。其中,表示层为客户端提供对应用程序的访问,主要是接受用户的请求、显示返回的页面;同时采用了先进的AJAX技术实现了Web状态下的异步通信,利用了开源的Ext界面包,丰富了页面的展现形式,使页面具有了各种菜单,弹出窗口等丰富效果。利用DWR与Ext相结合,DWR与系统的表示层接口进行通信,传递请求和响应。DWR将得到的响应资料赋值给Ext进行显示。业务层用于处理业务逻辑、访问数据层,一方面,处理表示层收集过来的数据并传递给数据持久层持久化;另一方面,完成对数据的相应的业务处理;控制程序运行的全局变量。因而,业务层可进一步划分为业务逻辑层和数据持久层两个子层,数据持久层采用了Hibernate中间件,实现了ORM映像,即实现了对象与关系数据库之间的映像,从而在使用面向对象的编程语言Java中依然可以用对象的方式来存储对象信息;业务逻辑层主要完成对数据的相应的业务处理,包括查询,修改,删除,插入数据库。控制程序运行的全局变量;提供数据库操作储存过程的数据访问对象(DAO)。数据层是数据库或者数据源起到数据存储作用。

    系统采用Client/Server、Browser/Server相结合的开发模式,这样既发挥了传统C/S模式交互性强、具有安全的存取模式、响应速度快、有利于处理大量数据的优点,又能充分发挥B/S模式易于管理和维护、无需开发客户端软件、开发效率高且周期短,与平台无关等优点。

    本系统抓取器设计采用Client/Server开发模式。应用被分为前台和后台,前台接收用户数据和显示处理结果,在服务器上的后台负责处理前台请求,得到结果后只将处理结果送回客户机。C/S模式能够充分发挥客户机和服务器的处理能力,向用户提供有效的服务。用户搜索、管理接口设计设计则采用Browser/Server开发模式。客户端通过浏览器访问Web服务器、发出数据请求,Web服务器从后台数据库服务器中获得数据并进行计算,将结果返回给浏览器,完成整个操作过程。

    三、系统功能设计与实现

    针对企业对资源搜索的需求,设计开发了企业内外网结合的搜索引擎。下面对各个子系统功能及实现技术进行详细介绍。

    (一)数据获取设计与实现。抓取器是搜索引擎的前端组件,是Lucene索引的数据来源,本系统中的抓取器采用插件思想来对不同数据对象进行处理;采用开源组件PdfBox、Jacab、Poi等对数据对象进行抽取转化,形成纯文本的二进制元位元组流,然后将其转为Lucene的Document类型进行索引;同时它是通过控制台运行的应用程序,可以通过传递参数,和读取XML配置文件两种方式来运行,因此具有较强的独立性,同时实现分布式索引。对不同的数据对象采用插件设计思想,从而使程序具有了极强的扩展性。

    该模块对Web抓取部分实现了代理、窗体自动提交等,该部分主要针对HTML解析。对FTP、本地文件系统,主要采用递归文件夹的遍历操作,对数据库索引主要是对表遍历操作;同时该模块可被搜索引擎的管理接口调用,接受任务调度信息,如任务的站点列表、采集深度、站点子目录等。若没有传入任何调度信息时,将从默认的XML配置启动。

    (二)管理功能设计。

    1.解析插件管理。本模块实现对搜索引擎所用的所有插件的统一管理。实现插件的热插拔,搜索引擎可以通过插件的方式,在不影响系统应用的前提下,添加新功能。插件管理可以方便的添加删除以Jar包形式的插件,并将插件的功能,集成到系统中。

    插件管理的实现主要依赖于抓取器中插件的开发。在针对不同数据对象进行解析的过程中,本系统设计了不同数据对象的插件。插件的设计是要遵循系统主框架提供的接口原则,针对每一种或几种数据对象封装成一个Jar包,然后指定Jar包所在的目录,在DocumentFactory类进行实例化的时候,对Jar包所在的目录进行遍历,对Jar包中提供的类进行实例化,每个类的构造函数中指明了该类负责解析的数据对象类型,然后将这些类型集封装起来。这样一来对插件进行管理时只需要提供一个目录配置接口即指明插件Jar包所在的路径,然后针对这个路径做一个文件上传操作,和一个檔删除操作。当有新的插件开发出来之后,只需要用檔上传操作将新开发的Jar包上传到指定的目录。当不需要对哪种檔类型解析时,只需删除调解析该文檔类型的Jar包即可。

    2.分词词典管理。分词是搜索引擎建立索引时的重要环节,分词的效果直接影响搜索引擎的搜索结果,对于中文来说,一般分词是基于词库的。所以又实现了词库管理模块,它实现对搜索引擎所需词库的进行管理,它可以根据业务需要添加新词到词库中,也可以删除词库中现有的词。用户可以以文本文件的形式,将需要添加的词导入到词库中,也可以通过页面,手动将个别词汇添加到词库中。词库管理特别设定了挖掘机制,可以将用户搜索过而词库中没有的词汇添加到词库中。

    词库形成的三种机制

    (1)批量导入。批量导入适合于某一行业的专有名词加入到自己的分词词库中。这部分要求目标词库是一个文本文件,以UTF-8编码,每次一行。然后通过檔上传操作,将檔传到服务器的指定目录,然后再在服务器端对檔进行读操作。将词批量读取出来添加到词库中。

    (2)单个词汇录入。当将要添加的词汇只有几个时,我们可以通过一个多行文本框的接口直接录入,点击提交后保存到词典库中。

    (3)系统自动挖掘。为使词库具有较强的扩展性,我们还提供了系统自动挖掘新词汇的功能,我们先设置一个挖掘策略,这里有两种挖掘策略可以设置,就是根据用户的搜索频率,当用户的搜索频率达到我们系统中设定的值时,系统将现判断该词是否存在与词典中,若不存在则加入词典,并记录日志信息。

    3.统计与日志管理。统计和日志是搜索引擎非常重要的部分,因为这一部分体现着用户的输入。可以动态的了解用户的需求,根据用户的需求来挖掘用户真正想要的,这才是企业的目的。

    统计管理模块实现对搜索引擎使用过程中所产生的所有感兴趣的信息的统计功能。根据用户需求,需要进行搜索词频统计,不同时间段访问统计,访问IP统计,索引统计。

    日志管理模块实现对搜索引擎使用过程中所产生的所有日志信息的统一管理。系统会将所有来访日志,词典日志,操作日志记录下来,用户可以通过动态检索的方式,察看所有日志信息。

    统计管理在很大程度上依赖于日志所记录的信息,这部分主要是将日志信息以图表等形式做分类显示。在统计管理过程中,本模块结合Jfreechart组件实现以饼图和柱状图的形式向直观的用户呈现各种统计信息。

    4.权限认证管理。企业在信息化过程中,各个应用系统都有自己的认证体系,随着应用系统的不断增加,一方面企业员工在业务系统的访问过程中,不得不记忆大量的账户口令,而口令又极易遗忘或泄露,为企业带来损失;另一方面,企业信息的获取途径不断增多,但是缺乏对这些信息进行综合展示的平台。

    本系统中搜索引擎权限控制机制采用内网门户系统的权限控制体系,不做单独权限控制,所有用户账号及角色分配,由统一用户认证系统一并管理。

    身份认证系统是应用支撑平台与业务系统的认证接口,其主要功能是将业务系统中的认证逻辑提取出来,明确应用和安全之间的界限,封装底层信息安全处理的复杂过程,屏蔽不同操作系统和异构网络的差别,从而形成统一的身份认证中心,为用户提供身份认证服务。

    通过在B/S架构的应用系统前端部署代理拦截用户的访问请求,对于未经认证的用户,强制将其复位向到身份认证服务器进行身份认证,只有已经经过身份认证的用户才能够访问应用系统。从应用系统的角度看,凡是访问到应用系统的用户都是已经经过身份认证的,应用系统开发人员可以直接从HttpRequst或HttpSession中的指定位置获得用户的身份信息。

    (三)搜索引擎设计

    为了使搜索引擎具有更好的分类效果,更精准的定位,设计实现了按网页、本地文件系统、FTP、数据库、LDAP、MP3、图片、视频等分类检索。在前台搜索过程中使用了Jsp卷标来对搜索的窗体,结果等进行显示,Jsp卷标库(也被称作定制标签)是一种通过JavaBean生成基于XML的脚本的方法,从概念上讲,标签就是很简单而且可重用的代码结构。最后将所有的窗体提交操作统一提交到工具JavaBean(SearchToolkit)中,该JavaBean接收后将所有数据封装在PageRequest中供搜索过程中使用。然后通过页面后面标签的执行再调用SearchToolkit 的getSearchResult方法来取得查询结果。这样SeasrchToolkit便成了接口操作与搜索器之间的中转器。

    四、结束语

    本文设计并实现了基于C/S和B/S两种模式企业内外网结合的搜索引擎系统,充分利用并集成企业现有各应用系统功能,使企业内部及外部的资源得到充分利用,同时统一的身份认证管理,使企业用户不再需要记住繁多的用户及口令,充分体现了实用性和可扩展性,本系统提高了企业的管理水平,增加了企业的经济效益,具有推广应用价值。

    参考文献:

    [1]周祥,王丽芳,蒋泽军,张羽.基于Lucene的企业信息门户搜索引擎设计[J].微处理机,2009,4:62-68

    [2]刘冰,卢秀山,赵红波,石奉华.基于.NET的煤矿安全监测系统的设计与实现[J].计算机应用,2007,27(6):392-394

    [3]张学军,黄丽亚,包亚萍.基于VPN的连锁企业网的研究与实现[J].计算机应用研究,2004,21(3):191-193

    [4]唐杰,张福炎.一种全特征递进网格模型生成算法[J].计算机应用,2004,7:1-3

    [5]张志刚,王科平,李长青.基于Web的煤矿视频监控系统的设计与实现[J].微计算机信息,2007,23(3):18-20

    [作者简介]霍仁崇(1982-),男,河北邢台人,助教,硕士,研究方向:计算机信息系统、电子商务。

    相关热词搜索: 互联网 域网 搜索引擎 设计

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网