2009-01-19 30 views
2

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

UPDATE和INSERT很少发生,SELECT使用CONTAINS是比较常见的。我使用的是SQL 2008

样品表定义,其中名字,姓氏,昵称和全名是全文搜索使用的列:

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

回答

2

您可以将全文索引添加到一个视图。

创建一个包含连接的两列的视图。确保用 “模式结合” 创建:

CREATE VIEW [DBO] [v_MyView] WITH SCHEMABINDING 等。

如果使用Management Studio中的过程的其余部分应该很容易。

+1

好主意!这是用于创建视图的代码: CREATE VIEW [DBO] [PlayerQuery] WITH SCHEMABINDING AS 选择ID,名字,姓氏,昵称,姓+ '' +名字AS全名 FROM dbo.Player CREATE UNIQUE CLUSTERED INDEX ind_PlayerQuery ON dbo.PlayerQuery(Id) – DavGarcia 2009-01-19 03:45:19