Exchange全文检索概述 Windows下默认提供的IFilter有四个:针对纯文本的、针对HTML类型文档的、针对Office系列文档的、针对MIME文件。如果想支持其他类型的文档,就必须下载该类文档开发商提供的IFilter,例如PDF,就需要到Adobe的网站上去下载(http://www.adobe.com/support/downloads/product.jsp?product=1%26amp;platform=Windows)。 很不幸如果你的系统需要支持的文档没有IFilter,或者你自己定义的文档个是,那么就需要开发自定义的IFilter了。到时候需要具体问题具体分析,这里就不多说了。 2-3、开发支持全文检索的存储引擎 2-1关注的是用户需求,可谓最贴近应用领域的开发;2-2关注的是存储的内容;这部分关心的就是存储本身了。简单的说当你的工作是开发一个存储管理系统,并且希望利用已经存在的检索引擎(Search Service)那么你就需要和检索引擎本身交道了。 在介绍概念的时候提到过,这类交互分为两大类,一类是创建或者维护索引时,另一个类是查询时。简单的看一下检索引擎本身,分为三部分:索引支持(Indexing Support)/索引引擎(Index Engine)和查询支持(Querying Support)/查找引擎(Search Engine)。在创建索引时,存储引擎主要和Indexing Support部分打交道,索引创建和维护的工作由Index Engine完成;在全文查询时,主要和Querying Support打交道,查询工作由Search Engine完成。 所谓支持就是实现一系列的接口并且调用一系列的接口,具体我也没干过,再说也是废话,就这些了。 3、全文查询指南 下面将比较详细地讲解以下在Exchange Server 2000平台下如何进行全文查询。 3-1、配置 缺省情况下Exchange下是不启动全文检索的功能,需要进行一些简单的配置。配置的过程就是为指定的存储空间(Public Store或者Private Store)创建索引。 在Exchange提供的管理工具System Manager下,这些配置工作非常容易完成,只有三个步骤。 a)选择特定的Public Store,执行“Create Full-Text Index”的功能,这是需要选择一个存放Index Catalog的目录。 b)刚刚创建完的全文索引是没有任何内容的,需要执行“Start Full Population”。这是一个比较耗时的操作,不会立刻产生效果,也正是因为在平时创建好了索引信息,在使用的时候才能够比较快速的定位记录。 c)然后还需要修改Store的属性中有关“Full-Text Index”的标签页中,修改其中的“Update Interval”属性项,选择自动更新索引信息的时间间隔,如果选择的是“Always run”,那么就会实时更新,当然系统开销也就比较大。当然也可以通过“Start Incremental Population”,以手动的方式,更新索引信息。 d)此外还需要在“Full-Text Index”标签页中,选择“This index is currently available for searching by clients”属性项,这样在查询过程中就会使用这部分创建的索引信息。 这一部分的功能我没有找到编程接口,所以目前只能够通过手动的方式配置。希望了解详细的内容,可以查阅MS相关的白皮书。 3-2、查询语句的语法说明 2-1中提到查询语句是没一个存储引擎所提供的,通常都是针对SELECT语句的扩展,下面将以Exchange的Store SQL为例讲解一下全文查询。 Exchange下全文查询的语句并不复杂,在Exchange Store SQL中提供了如下谓词(Predicate)加以支持,在WHERE子句(CLAUSE)中包含如下谓词,即可以继续全文检索: CONTAINS:进行关键字的完整单词的匹配,格式为, CONTAINS( [" propertyNAME " | * , ] ' searchspec ' ) 如果“propertyName”部分*(Astrisk),则在所有属性中检索关键字,不包含"propertyName",则在消息或者文档的正文部分检索关键字,下同。“searchspec”部分包含关键字,通配符*,例如'GOOD*';也可以包含多个关键字组合查找,支持逻辑操作符AND和OR。每个关键字需要用"(Quote)包含,否则会产生语法错误。 FREETEXT:与CONTAINS比较类似,但是可以对关键字中每一个单词或者一组单词的多种变化形式进行模糊(Loosely)匹配,格式为, FREETEXT( [" propertyNAME ", ] ' searchspec ' )
这里需要强调的是,对于关键字变换形式的匹配,而不是关键字子串(Substring)的匹配,也就是说可以通过'rose'找到'roses',但是不能够通过'public'找到'republican'。 上一篇:Microsoft Exchange 2000 群集 下一篇:如何删除和重新安装IIS和Exchange 更多相关文章
|
推荐文章
精彩文章
|