Sql server 在SQLServer中搜索文本列的最佳方法

Sql server 在SQLServer中搜索文本列的最佳方法,sql-server,full-text-search,sql-like,Sql Server,Full Text Search,Sql Like,我原以为全文搜索可以让我以比同类谓词更优化的方式进行精确短语搜索,但据我所知,它并没有做到这一点 “LIKE”是搜索表中数千行文本字段的文本字符串的最有效方法吗 它必须是精确匹配的…显然,包含的比类似的查询要快 (评测可在该演示文稿的第19页找到)您使用的是哪个版本的SQL Server?如果可以的话,我建议将文本替换为VARCHAR(MAX)(SQLServer2005及更高版本) 是什么让你说全文不起作用?您是如何设置全文的,您的全文查询是什么样子的 如果在列上有适当的索引,并且只在值的开

我原以为全文搜索可以让我以比同类谓词更优化的方式进行精确短语搜索,但据我所知,它并没有做到这一点

“LIKE”是搜索表中数千行文本字段的文本字符串的最有效方法吗


它必须是精确匹配的…

显然,
包含的
类似的
查询要快


(评测可在该演示文稿的第19页找到)

您使用的是哪个版本的SQL Server?如果可以的话,我建议将文本替换为VARCHAR(MAX)(SQLServer2005及更高版本)

是什么让你说全文不起作用?您是如何设置全文的,您的全文查询是什么样子的

如果在列上有适当的索引,并且只在值的开头查找“string”,则Marc

LIKE(string%)将运行得更快。如果“字符串”可能位于值的中间,则必须使用类似的(%String %);在这种情况下,表扫描会启动,而且速度很慢(通常比全文搜索慢)。
您可以使用全文搜索的CONTAINS()函数进行精确匹配。

我使用SQL Server Management studio创建全文目录,并在其中一个表的字段上创建全文索引。我的查询:选择前10位序列号、作者id、写作、作业类型、子日期、来自write_的标题,其中包含(写入“take it once”)—查询返回开始时已拍摄的内容、中间任意数量的单词,然后返回单词“once”。我只想要字面上的短语“拿一次”