您的位置:首页 > 数据库

SQL Server 2005全文检索技术

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

1. 链接服务器登记表

ID

编号

Name

名称
From

To

DB

数据库
Comment 检索命令示例
LS_01LSAtoBwithAdventureworksABAdventureworksA城SQL Server到B城SQL Server Adventureworks数据库的连接服务器
LS_02LSAtoBwithNorthwindABNorthwindA城SQL Server到B城SQL Server Northwind数据库的连接服务器
LS_03LSAtoCwithAdventureworksACAdventureworksA城SQL Server到C城SQL Server Adventureworks数据库的连接服务器
LS_04LSCtoAwithAdventureworksCAAdventureworksC城SQL Server到A城SQL Server Adventureworks数据库的连接服务器
LS_05LSBtoAwithAdventureworksBAAdventureworksB城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_AllProduct1Q_04.......
BQ_AllProduct2Q_05.......
BQ_QueryHr1Q_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>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: