Exchange全文检索概述0、写在前面 本文主要讲述在Windows2000 Server环境下,Exchange Server和Sharepoint Portal Server全检索功能的应用,同时涉及一些SQL Server下的概念。 本文只会对一些基本的概念进行说明,主要以个人理解和事例为主,希望了解详细的资料,可以访问参考文献的连接。对于文章中的错误与不足,请及时指正。 1、基本概念 我相信很多人对于全文检索的功能都非常的敬畏,心想Exchange居然能够查找一个作为附件的PDF文档中的内容,Exchange实在太强了。其实Exchange没干啥事(还是干了点事情的,不是什么都没做,下面会讲到),全文检索是Windows下一个重要的服务“MS Search Service”实现的功能,Exchange只需要和MS Search交互就自然拥有了全文检索的功能。所以在MS的Enterprise Server中不仅仅Exchange,Shareporit Portal Server和SQL Server等都支持全文检索。 Windows下还有一个服务Index Service,也完成类似的工作,有它存在,就连Windows下的文件系统以及IIS都可以进行全文检索,非常方便的功能。 不知道可不可以这么说Index Service是MS Search Service的一个特例,或者倒过来,我没有看到两者在体系结构以及完成功能上有什么不同,这也是我比较困惑的地方之一。 说到全文检索必须要明确一些基本概念,我们才能够知道那个服务干了点什么,这样实现特定功能的时候才明白应该在那一个层面上进行开发。 全文检索分为两部分的工作:全文索引(Full-Text Index)和全文查询(Full-Text Query)。我们知道为了提高查询的效率,有一种机制叫做“索引(Index)”,索引中存储了关键字和对应的记录在逻辑存储空间中的位置。数据库管理系统(DBMS)中有索引表,相信大家都可以理解,全文检索中也是同样的原理。 全文索引(Full-Text Index):创建索引的过程,建立关键字与记录的对应关系。创建完成的索引信息或者以增量的方式修改属性信息。 索引分类(Full-Text Catalog):可以认为是关键字存储的组织形式。 全文查询(Full-Text Query):利用索引分类,根据关键字查找对应的记录。 在MS的产品体系结果中,MS Search Service和Index Service这类服务(以后主要描述Search Service)的主要工作就是创建和维护索引表和索引分类,可以称之为搜索引擎;诸如Exchange和SQL Server是为记录提供存储空间,可以统称为存储引擎,存储引擎必须支持MS Search的一些特定接口,就可以利用。全文索引的过程就是MS Search请求存储引擎,获得需要索引的数据,分析关键字,创建或者维护索引信息;全文查询就是存储引擎请求MS Search,MS Search根据关键字返回对应的纪录的位置,存贮引擎组织这些记录返回给调用者。 这样我们可以了解到,如果希望支持全文检索,那么首先要有全文检索服务的提供者,支持全文检索的存储引擎。在Windows Server的平台下,针对Exchange的应用,以上条件均满足,那么我们可以开始了! 2、全文检索下的开发 了解了Windows平台下全文检索基本的体系结构,我们可以在很多方面进行相关的开发工作。 2-1、全文查询 全文检索就是利用查询语句,在存储引擎中查找满足条件的记录。这个应该是大家最熟悉也是应用最多的方面,也是本文讲述的重点,后面有专门的章节详细描述这部分的功能。 需要指出的一点是,全文查询的过程依赖于MS Search以及他所维护的索引数据,但是是存储引擎支持的功能,这部分的应用是与存储引擎进行交互,MS Search这个搜索引擎对我们来说是透明的。针对不同的存储引擎,查询语句(基本上就是SELECT了)是不同的,不过没有本质的区别。 2-2、MS Search下IFilter的开发 全文检索最令人感到神奇的地方就是,他怎么能够从Word或者PDF这类二进制或者特定编码的文件中检索出文本字符串呢?另一个问题就是MS Search是不是支持所有的文件格式呢? MS Search并不能支持所有的文件格式,即使以MS之强悍,也无法对抗天下英豪,但是MS Search提供一个机制,使支持任何一种格式的文档成为可能,这个机制就是Index Filter,简称IFilter。我个人以为IFilter最终要的工作有两个,一个是读取指定格式的文件,解析内部的文本内容(而非格式或者图形、其他二进制包容对象)和文档属性(例如:作者,分类等);第二个就是分词(Parsing Word or Phrase),全文检索的命中率高不高,关键看关键字生成的是否合理,我总觉得目前以后的这些IFilter对于中文支持的不够理想,检索中文经常莫名其妙。
上一篇:Microsoft Exchange 2000 群集 下一篇:如何删除和重新安装IIS和Exchange 更多相关文章
|
推荐文章
精彩文章
|