全文搜索简介
使用全文搜索可以快速、灵活地为存储在 Microsoft SQL Server 数据库中的文本数据的基于关键字的查询创建索引。与仅适用于字符模式的 LIKE 谓词不同,全文查询将根据特定语言的规则对词和短语进行操作,从而针对此数据执行语言搜索。
在 Microsoft SQL Server 2005 中,全文搜索用于提供企业级搜索功能。由于在性能、可管理性和功能方面的显著增强,全文搜索可为任意大小的应用程序提供强大的搜索功能。
对大量非结构化的文本数据进行查询时,使用全文搜索获得的性能优势会得到充分的表现。对数百万行文本数据执行的 LIKE 查询可能需要花费几分钟时间才能返回结果;但对同样的数据,全文查询只需要几秒或更少的时间,具体取决于返回的行数。
可以对包含 char、varchar 和 nvarchar 数据的列创建全文索引。也可以对包含格式化二进制数据(如存储在 varbinary(max) 或 image 列中的 Microsoft Word 文档)的列创建全文索引。不能使用 LIKE 谓词来查询格式化的二进制数据。
若要对一个表创建全文索引,该表必须具有一个唯一且非空的列。例如,假设 Adventure Works 中的 Document 表具有全文索引,在该表中,DocumentID 列是主键列。全文索引表明,对于与 DocumentID 为 3 相关的行,在 DocumentSummary 列中词编号为 24 和 44 的位置找到了词“instructions”。此索引结构支持对包含索引词的所有项进行高效搜索,并支持高级搜索操作,例如短语搜索和邻近搜索。有关详细信息,请参阅Document 表 (AdventureWorks)。
在处理全文查询时,搜索引擎将满足搜索条件的行的键值返回给 SQL Server。如果要使用全文查询来查找包含“instructions”一词的文档,将从全文索引获得 DocumentID 值 3、4、6、7 和 8。SQL Server 随后使用这些键返回匹配的行。
请参阅
概念
其他资源
全文搜索增强功能
LIKE (Transact-SQL)
全文搜索概念