SQL Server 2005全文检索技术

针对全文检索仅支持单个表的局限性,介绍了一种在应用层面上通过搜索引擎合并多个检索结果的方法。此方法适用于非结构化文本数据分散在不同位置的情况,并提供了配置库来指定哪些结果需要合并。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.2 多个全文检索结果的前期设计 

    受到全文检索仅仅支持单个表的限制,每个全文检索的结果相对有限。但是,对于用户而言他们常常做的是一个模糊的关键词在通盘信息中的检索,这些工作应该由开发人员在应用层通过搜索引擎帮助用户进行后台的合并。此外,对于整个政府行业和大型的企业而言,非结构化文本数据和结构化二进制信息资源很可能物理上分散在不同的物理位置上。因此,对于高层的决策者和信息工作者而言,他们也需要查询引擎内部提供检索结果合并的支持。 

    这里,基于上文笔者提出的统一检索结果Schema,统一全文检索系统需要提供一个配置库,用于保存不同全文检索功能需要把哪些检索命令的执行结果进行合并,此外考虑到个别高级用户的需要,还需要提供给这一部分用户Ad-Hoc同时全文检索多个数据内容(甚至是多个信息源)的支持。为了说明这个数据合并的过程,这里笔者假设了一个业务应用情形:

 (1)AdventureWorks公司的高管、人事、财务等部门位于A城的总部(Headquarter),使用的是SQL Server 2005。

 (2)AdventureWorks公司的仓库位于B城,但是生产系统与总部是互联的,使用的是SQL Server 2005。

 (3)AdventureWorks公司的1号工厂位于C城,但是生产系统与总部是互联的,使用的是SQL Server 2005。

 (4)AdventureWorks公司最近收购了Northwind的工厂,作为它的2号工厂,这个工厂也位于B城,但是生产系统与AdventureWorks总部和原有的仓库也是互联的,使用的是Oracle 9i,但是产品信息很少,相关产品绝大多数都是在本地销售。

图7:示例应用的地理分布关系

    那么根据各地的信息,如果要查询和“中国”相关的信息,各自相关的全文检索命令类似下表。

ID
编号
Title
检索内容
Site 位置DB
数据库
Command
检索命令示例
Q_01A点人事信息AAdventureworksSELECT Comments,StartWorkDate
FROM <prefix>HR.Employee
WHERE CONTAINS(Comments, ' "from china" ');
GO
Q_02A点财务信息AAdventureworksSELECT Notes,AccountDate
FROM <prefix>Finance.Expanse
WHERE CONTAINS(Notes, ' " china" ');
GO
Q_03B点仓库信息BAdventureworksSELECT Note, RegisterDate
FROM <prefix>Warehouse.Inventory
WHERE CONTAINS(Note, ' "from china" ');
GO
Q_042号工厂的产品信息。
(已将Oracle的信息导入到SQL Server 2005的Northwind数据库)
BNorthwindSELECT COMMENT, INPUT_DATE
FROM <prefix>PRODUCT_LIST
WHERE ORIGINAL_COUNTRY = 'CHINA'
GO
Q_051号工厂的产品信息CAdventureworksSELECT Note, InputDate
FROM <prefix>Production.Producct
WHERE CONTAINS(Note, ' "from china" ');
GO

表3:查询的配置表 (Q : Query)

    说明如下。 

    这里既有全文检索也有关系数据库查询,例如:由于Northwind由于产品信息很少,而且登记产品的时候还登记了产品的来源国,所以完全可以通过关系数据库查询完成检索工作。

 其他全文检索的示例都采用的是本地搜索特定词或短语(简单词条)的方式。


 与可以直接执行的语句不同,这里每个查询的FROM对象前面还有个<prefix>,它的内容会根据查询是本地还是远程链接服务器在运行态动态修改的。

1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值