“与全文搜索相比,LIKE Transact-SQL 谓词仅适用于字符模式。此外,您不能使用 LIKE 谓词查询格式化的二进制数据。此外,针对大量非结构化文本数据的 LIKE 查询要多得多比针对相同数据的等效全文查询慢。针对数百万行文本数据的 LIKE 查询可能需要几分钟才能返回;而针对相同数据的全文查询可能只需几秒钟或更短时间,具体取决于数量返回的行数。”
所以主要区别在于他们所做的搜索类型:全文是关于单词搜索,而 LIKE 是关于字符搜索。我个人会在我有大量人类文本的表格上使用全文搜索 - 通常是大表格(数百万行)中的大列(大描述,超过标准 8k 字符)。需要记住为 FTS 增加的管理(创建目录、索引,在需要时更新它们)。
来自MSDN - 全文搜索概述:
“全文查询通过根据特定语言(如英语或日语)的规则对单词和短语进行操作,对全文索引中的文本数据执行语言搜索。全文查询可以包括简单的单词和短语或多种形式的词或短语。
全文搜索适用于电子商务等广泛的业务场景——在网站上搜索项目;律师事务所——在法律数据库中搜索案例历史;或人力资源部门——将职位描述与存储的简历相匹配。无论业务场景如何,全文搜索的基本管理和开发任务都是对等的。但是,在给定的业务场景中,可以磨练全文索引和查询以满足业务目标。例如,对于电子商务而言,最大化性能可能比结果排名、召回准确性(全文查询实际返回多少现有匹配项)或支持多种语言更重要。对于一家律师事务所来说,返回每一个可能的打击(信息的全部召回)可能是最重要的考虑因素。”
LIKE 与全文搜索的比较
“与全文搜索相比,LIKE Transact-SQL 谓词仅适用于字符模式。此外,您不能使用 LIKE 谓词查询格式化的二进制数据。此外,针对大量非结构化文本数据的 LIKE 查询要多得多比针对相同数据的等效全文查询慢。针对数百万行文本数据的 LIKE 查询可能需要几分钟才能返回;而针对相同数据的全文查询可能只需几秒钟或更短时间,具体取决于数量返回的行数。”
所以主要区别在于他们所做的搜索类型:全文是关于单词搜索,而 LIKE 是关于字符搜索。我个人会在我有大量人类文本的表格上使用全文搜索 - 通常是大表格(数百万行)中的大列(大描述,超过标准 8k 字符)。需要记住为 FTS 增加的管理(创建目录、索引,在需要时更新它们)。