SQL Server索引全文搜索视图

时间:2010-08-15 13:27:35

标签: sql-server full-text-search indexed-view

我想使用Microsoft SQL Server的全文搜索功能。

如果我有一个表客户端引用其他表,如城市,国家,部门等,最好是创建一个单独的表来保存非规范化数据,然后将其全文索引,或者它是否更好在每个外表中创建一个虚拟值(例如使用键-1),然后将Client表中的NULL替换为相应的虚拟值,然后创建一个索引视图(那些虚拟条目是由于索引视图和使用'inner join'而不是'left join')然后在这个索引视图上创建一个全文索引?

对于后者,我不必担心每次客户端或任何外国表(城市,国家,部门等)中的记录更改时填充“反规格化”表。

或者上面没有,我也可以使用一些新的想法:)

1 个答案:

答案 0 :(得分:4)

以上都不是。

保持数据规范化并在每个规范化表上创建单独的FT索引。查询数据时,查询相关表。如果您希望查询跨越多个表(例如,如果City,Country或Department包含'York'),则使用普通查询UNION运算符来聚合多个表中的搜索。这就是FT的工作原理,因此请保持您的设计与功能的工作方式保持一致。不要试图欺骗,你只会自己烧伤。