在SQL Server中集成常规和全文索引

时间:2010-08-04 12:10:33

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

我在SQL Server中有一个表,其中包含以下列:

id int (primary key)
text nvarchar(max) (full text indexed)
type int

我有这样的疑问:

where Contains([text], @text)

where Contains([text], @text) AND [type] = 3

但是第二个查询很慢。我想我应该将全文索引与[type]字段集成。

还有其他解决方案吗?

由于

2 个答案:

答案 0 :(得分:2)

我假设您没有运行SQL 2008,因为该版本中的集成全文引擎应该为您的查询做出更好的决策。对于早期版本,我通过在文本中使用某种形式的自定义标记嵌入其他键来获得成功。你需要一些触发器来保持文本的最新状态。

  

例如,“这是我的示例文本。   TypeKey_3"

然后你的where子句变成了:

where Contains([text], @text AND "TypeKey_" + @type)

答案 1 :(得分:1)

鉴于您无法在全文索引中添加整数字段,最好的办法是为[type]添加常规索引。