技术调研.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
技术调研

技术调研 概要:本文对“面向企业内部网络的全文检索系统”的核心技术进行了调研,与文件监控与传输模块、全文检索模块与Web应用平台对应,从文件监控与传输、全文检索和Web应用开发实现的各种技术及应用服务器的选择进行了分析。 文件监控与传输: Linux环境:由于公司大多使用Windows,暂不考虑。 Windows环境: 由于文件监控涉及到操作系统核心问题,Java无法提供相应API实现核心功能,故一般使用C++来开发实现。 目前Windows2000与Windows XP下有多种文件监控系统开发的方法: 1.较简单的是使用几个函数FindFirstChangeNotification()等开发目录监控系统,通过函数间参数获得特定值后依靠消息句柄的通信来获知文件与文件夹名字、大小、属性、目录等的改变。 这类系统优点是系统简单实用,较少文件更改时可以获得准确更改信息;缺点是当较多文件拷贝或删除时,较多线程一起处理文件,就会出现消息遗漏。如所附的dirmonitor-目录监视系统,当36个文件一起拷贝时,180个消息只获得了164个,遗漏了16个。 2. 使用Hook(钩子) API,Hook住相应的CreateFile,OpenFile, WriteFile等函数来监控文件并截获文件更改的信息。 缺点:使用HOOK 将会降低系统效率,因为它增加了系统处量消息的工作量。在必要时才使用HOOK,并在消息处理完成后立即移去该HOOK。全局HOOK函数将降低系统效率,并且会同其它使用该类HOOK的应用程序产生冲突一个在windows系统下的文件操作拦截的小驱动filter(可以在微软的文件驱动开发包IFS KIT中找到)。 FileMon简介: Filemon (File Monitor) 是 sysinternals 出品的一个出色的文件系统监视软件,它可以监视应用程序进行的文件读写操作。它将所有与文件一切相关操作(如读取、修改、出错信息等)全部记录下来以供用户参考,并允许用户对记录的信息进行保存、过滤、查找等处理,这就为用户对系统的维护提供了极大的便利。 FileMon核心是通过HOOK技术来实现的。在FileMon系统的文件中,其中FileMon.exe是用于和驱动进行通信的软件,可以及时观察驱动所拦截到的所有文件操作请求,而filem.sys是真正的文件驱动程序。该驱动程序由另外一个源码目录(sys目录)中的源码编译得到。 如果要做成一个实际可用的驱动,那么用户态的程序开发是必须的。它的作用是: 定制文件监视的策略,即应该对哪种文件操作进行相应处理,然后把这个策略下发给驱动。 实时接收文件驱动的拦截信息,用于统计分析。 要实现这两个功能,必须建立一种在用户态程序和驱动之间的通信机制,其中有一种是:用户态程序创建事件句柄(CreateEvent),然后用DeivceIOControl函数将这个句柄发送给驱动,驱动在需要通知用户态程序时,直接Set这个句柄,用户态程序就可以知道这个事件。 综合考虑,选用以FileMon为基础开发整个平台需要的文件监控系统。 文件传输系统采用VC,MS SQL server 2000作为开发工具,P2P加C/S结构进行开发。系统中的组成为中央服务器(可含文件服务器)加客户机(文件服务器),采用断点续传的TCP传输方式(分为仿TCP的UDP或TCP传输)。 全文检索的实现技术 Lucene是基于Java 的全文信息检索包,它目前是 Apache Jakarta 家族下面的一个开源项目。Lucene技术是一项广受好评的、高性能搜索技术,在很多领域都有应用。 Lucene作为一个全文检索引擎,其具有如下突出的优点: 索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。 在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。 优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。 设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。 已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询(Fuzzy Search)、分组查询等等。 因此系统采用Lucene作为全文检索的核心工具包。 在整个系统中,还需要专门的一些技术来实现特定功能,下面分别进行分析: 爬虫:不需要。首次上传由服务器统一调度;平时服务器端采取被动模式;客户端文件监控程序监控到一定量

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档