【发布时间】:2009-04-08 20:28:43
【问题描述】:
我认为全文搜索可以让我以比 LIKE 谓词更优化的方式进行精确的短语搜索,但我了解到它并不能完全做到这一点。
“LIKE”是在表中搜索数千行 TEXT 字段以查找文字字符串的最有效方法吗?
一定要完全匹配……
【问题讨论】:
标签: sql-server full-text-search sql-like
我认为全文搜索可以让我以比 LIKE 谓词更优化的方式进行精确的短语搜索,但我了解到它并不能完全做到这一点。
“LIKE”是在表中搜索数千行 TEXT 字段以查找文字字符串的最有效方法吗?
一定要完全匹配……
【问题讨论】:
标签: sql-server full-text-search sql-like
LIKE(string%) 如果您在列上有正确的索引并且您只在值的开头寻找“字符串”,那么 LIKE(string%) 的工作速度会更快。如果“字符串”可能在您的值的中间,您必须使用 LIKE(%string%) ;在这种情况下会触发表扫描,并且速度很慢(通常比全文搜索慢)。 您可以使用全文搜索的 CONTAINS() 函数进行精确匹配。
【讨论】:
显然,CONTAINS 比 LIKE 查询要快...
(可以在该演示文稿的第 19 页上找到简介)
【讨论】:
您使用的是哪个版本的 SQL Server?如果可以的话,我建议用 VARCHAR(MAX) 替换 TEXT(SQL Server 2005 及更高版本)。
是什么让您说全文不起作用?您是如何设置全文的,您的全文查询是什么样的?
马克
【讨论】: