技术开发 频道

SQL Server 2005全文检索技术


【IT168 技术文档】

    3.3 数据源的规划 

    SQL Server 2005可以同时支持如下三种数据: 

    (1)Char、Varchar、Nvarchar 

    (2)XML 

    (3)VarBinary(max)、Image 

    对于第一种,由于都是SQL Server的内置类型,因此数据提取很容易。对于后两种,为了保证Word、Excel、Power Point之类的格式化二进制数据可以被检索,一般在规划上还要增加伪列来标明对应的文件扩展名。这样,可以保证SQL Server 2005全文检索的过滤器可以从对应的文件中提取出需要的文本内容,并把它通过断字符拆分成有效的词汇列表(Wordlist)。集成方式如下:
 

图3:标准VarBinary(max)、Image、XML类型的集成方式

    通过查询视图sys.fulltext_document_types可以获得已经安装的过滤器(即支持的文档类型),下面是现有SQL Server 2005默认支持的文档类型: 

    (1).ascx、.asm、.asp、.aspx、.bat、.c、 
    (2).cmd、.cpp、.cxx、.def、.dic、.doc、 
    (3).dot、.h、.hhc、.hpp、.htm、.html、 
    (4).htw、.htx、.hxx、.ibq、.idl、.inc、 
    (5).inf、.ini、.inx、.js、.log、.m3u、.mht、 
    (6).obd、.obt、.odc、.pl、.pot、.ppt、.rc、 
    (7).reg、.rtf、.stm、.txt、.url、.vbs、.wtx、 
    (8).xlb、.xlc、.xls、.xlt、.xml 

    对于远程的SQL Server, 可以通过链接服务器方式访问远端数据源的全文检索系统。若要对链接服务器执行全文查询,必须先对远程服务器上的目标表和列创建全文索引。然后,将远程服务器添加为链接服务器。完成这些操作后,可以在包括CONTAINS 或 FREETEXT 这些全文查询的语句中使用,不过检索对象的命名是由四部分组成的名称对链接服务器上的目标表和列进行查询。 

    此外,对于以往保存在Oracle、DB2、MySQL等数据库产品上的text、image数据,也可以通过SQL Server的复制或者集成服务来进行数据同步。这个同步要根据文本内容的更新频率、业务许可间隔、数据类型进行配置。常用的同步方式如下: 

    (1)通过SQL Job,基于 ODBC/OLEDB 的分布式查询定期更新。该方式可以视为从SQL Server端,定期批量从异构数据库“拉”出数据。 

    (2)通过IIOP、HTTP、Trigger + JOB、External Server等方式向SQL Server写入。该方式可以视为异构数据库根据配置定期向SQL Server端写入,即向SQL Server “推”数据。 

    (3)复制:该方式可以提供更为实时的同步,即可以通过具有事务性(Transactional)的单票数据更新实现,也属于向SQL Server “推”数据。 

    (4)通过中间介质 Export / Import:通过平文本之类的中间介质,配合FTP、Queue等发送方式,完成异构数据库的导出和SQL Server端的异步入库。
 

图4:异构数据库与SQL Server的同步方式



    另外,对于大型的政府行业和企业而言,还存在多数据中心间的全文检索数据源同步的问题。对于这种远程的系统,异构数据源的导入要本着就近原则,全文检索上需要考虑尽量在集中的某个中心上执行。

图5:多数据中心的全文检索部署体系

    说明如下:每个中心内部的异构数据源的导入在本数据中心内部完成;不同数据中心间通过双向的Linked Server完成;但是对于每个点视为其他中心对自己的单向Linked Server;客户端全文检索在就近的SQL Server 2005服务器上执行。

0
相关文章