技术开发 频道

SQL Server 2005全文检索技术


【IT168 技术文档】

    如果想要高管要在A城检索全部的人事信息、财务信息、产品信息,根据上面讨论需要增加一系列统一查询结果的配置登记。

    1. 链接服务器登记表

ID
编号
Name
名称
From
To
DB
数据库
Comment 检索命令示例
LS_01 LSAtoBwithAdventureworks A B Adventureworks A城SQL Server到B城SQL Server Adventureworks数据库的连接服务器
LS_02 LSAtoBwithNorthwind A B Northwind A城SQL Server到B城SQL Server Northwind数据库的连接服务器
LS_03 LSAtoCwithAdventureworks A C Adventureworks A城SQL Server到C城SQL Server Adventureworks数据库的连接服务器
LS_04 LSCtoAwithAdventureworks C A Adventureworks C城SQL Server到A城SQL Server Adventureworks数据库的连接服务器
LS_05 LSBtoAwithAdventureworks B A Adventureworks B城SQL Server到A城SQL Server Adventureworks数据库的连接服务器


表:连接服务器登记表 (LS : Linked Server)

    2. 查询结果统一化登记表

    这里为了所有的操作都可以配置化,同时为了提高开发库的重用性,笔者采用了XSD-〉XSLT->XSD的描述方式。

    注:当然,读者也完全可以通过配置专用的转换Assembly + Class完成,只不过如果交换的全文检索内容很多的话,需要重复进行很多开发工作。

    上文笔者统一化的查询结果Schema用XSD表示如下:
 


图8:统一化的全文检索查询结果Schema


    注:用Stylus Studio XML Enterprise Edition的XML Designer显示的结果。

    以查询结果Q_01为例,如果要把它统一化,那么需要在全文检索的结果中增加几个查询配置表的内容作为占位伪列(Placeholder column)。然后,与统一检索结果Schema的映射关系如下: 

    url :http:// hr.adventureworks.com 
    title :人事信息 
    documentType:DB 
    content:查询结果的Comments字段 
    inventoryDate:查询结果的StartWorkDate字段 
    extension:null 

    处理上,仅需要配置一个如下映射关系的XSLT就可以完成:

 
图9:把查询Q_01的结果影射为统一化查询结果Schema的XSLT

    3. 业务检索登记表

ID
编号
Step
查询组成步骤
Q_ID
查询编号
Converter
转换关系
BQ_AllProduct 1 Q_04 .......
BQ_AllProduct 2 Q_05 .......
BQ_QueryHr 1 Q_01 <?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<unifiedFullTextResult url="http://hr.adventureworks.com" title="人事信息" documentType="DB" extension="null">
<xsl:attribute name="content">
<xsl:value-of select="hrQuery/@Comment"/>
</xsl:attribute>
<xsl:attribute name="inventoryDate">
<xsl:value-of select="hrQuery/@StartWorkDate"/>
</xsl:attribute>
</unifiedFullTextResult>
</xsl:template>
</xsl:stylesheet>

0
相关文章