SQL Server 2005全文检索技术
如果想要高管要在A城检索全部的人事信息、财务信息、产品信息,根据上面讨论需要增加一系列统一查询结果的配置登记。
1. 链接服务器登记表
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> |
长期招聘java,有找工作可以联系我,微信:caozhenhua1563