使用全文搜索而不是“赞'%____%'查询

时间:2012-11-18 17:20:42

标签: sql-server-2008 full-text-search sql-server-2008-r2 sql-like

我正在查询一个表(大约150,000行并且正在增长),其中包含一个无法索引的大varchar字段(大小为2000)(即使它可能也没有意义)。我正在使用Sql Server 2008。 我到现在使用的查询是:

从tbl_name中选择* 其中field_name类似'%bla bla%'

(“bla bla”取决于用户搜索的内容)

为了提高性能,我想开始使用全文搜索功能(已经在此字段中定义了目录和文本索引)。 我对使用此选项查询的内容感到有点困惑。 我应该使用什么查询来获得与之前使用的查询完全相同的结果?

  • 评论:
    1. 我希望得到的结果不具备个案敏感性,因为之前有效(意味着如果用户搜索“LG”,他也会得到包含“Lg”的结果。)
    2. 如果用户输入“Sams”,他也将获得“三星”。

谢谢! 叶兰。

1 个答案:

答案 0 :(得分:2)

CONTAINS()将为您提供您正在寻找的LIKE()功能,但有一个例外 - 我在评论中注意到您还希望匹配第二个条目 - “hhhEranttt”。不幸的是,由于缺乏后缀搜索,目前这是不可能的。

对于其他条目,您可以运行前缀搜索 - CONTAINS(field_name, '"eran*"'),它匹配所有其他条目,因为全文搜索不区分大小写。

HTH。