【问题标题】:Full text search on calculated columns计算列的全文搜索
【发布时间】:2009-01-19 03:09:01
【问题描述】:

我需要允许对连接在一起的两个字段进行全文搜索。在这种情况下,FullName = FirstName + ' ' + LastName。简单的方法似乎是创建一个 FullName 计算列,然后将其作为一列包含在全文索引中。这是一种可接受的方法吗?你会怎么做?

UPDATE 和 INSERT 很少发生,相比之下,使用 CONTAINS 的 SELECT 很常见。我正在使用 SQL 2008。

示例表定义,其中 FirstName、LastName、NickName 和 FullName 是全文搜索中使用的列:

TABLE Player
    Id uniqueidentifier ROWGUIDCOL NOT NULL DEFAULT (newid()),
    ...
    FirstName nvarchar(128),
    LastName nvarchar(128),
    NickName nvarchar(128),
    FullName  AS ([FirstName]+' '+[LastName]) PERSISTED

【问题讨论】:

标签: sql-server sql-server-2008 full-text-search


【解决方案1】:

您可以为视图添加全文索引。

创建一个包含连接的两列的视图。确保使用“模式绑定”创建它:

使用 SCHEMABINDING 创建视图 [dbo].[v_MyView] 等等。

如果您使用的是 Management Studio,那么其余的过程应该很简单。

【讨论】:

  • 好主意!这是用于创建视图的代码: CREATE VIEW [dbo].[PlayerQuery] WITH SCHEMABINDING AS SELECT Id, FirstName, LastName, NickName, FirstName + ' ' + LastName AS FullName FROM dbo.Player CREATE UNIQUE CLUSTERED INDEX ind_PlayerQuery ON dbo .PlayerQuery (Id)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
相关资源
最近更新 更多