用于全文搜索的 SQL Server 索引视图

Posted

技术标签:

【中文标题】用于全文搜索的 SQL Server 索引视图【英文标题】:SQL Server Indexed view for Full Text Search 【发布时间】:2011-03-30 02:07:21 【问题描述】:

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

如果我有一个表 Client 引用其他表,如 City、Country、Department 等在每个外部表中创建一个虚拟值(例如使用键 -1 ),然后用那些相应的虚拟值替换客户端表中的 NULL,然后创建一个索引视图(这些虚拟条目是因为索引视图和使用'inner join' 而不是 'left join')然后在这个索引视图上创建一个全文索引?

使用后者,我不必担心每次客户端或任何外部表(城市、国家、部门等)中的记录发生更改时填充“非规范化”表。

或者以上都不是,我也可以使用一些新的想法:)

【问题讨论】:

【参考方案1】:

以上都不是。

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

【讨论】:

如果性能是一个问题,OP 问题中的选项 1 不是可行的解决方案吗?供参考:***.com/a/8932733/538962

以上是关于用于全文搜索的 SQL Server 索引视图的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 全文搜索

SQL Server 使用全文索引进行页面搜索

Sql Server 数据库建全文搜索

立即更新全文搜索索引 - SQL SERVER 2012

为啥 SQL Server 全文搜索不匹配数字?

Sql Server 2008 中缺少全文索引系统视图