使用全文搜索而不是"喜欢'%____%'查询"



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

从tbl_name中选择 *其中field_name像"%bla bla%"

("bla bla"是根据用户搜索的内容)

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

  • 评论:
      我想得到不
    1. 区分大小写的结果,因为它以前有效(这意味着如果用户搜索"LG",他也会得到包含"Lg"的结果)。
    2. 如果用户输入"Sams",他也会得到"Samsung"。

谢谢!伊兰。

CONTAINS()将为您提供所需的 LIKE() 功能,但有一个例外 - 我在评论中注意到您还想匹配第二个条目 - "hhhEranttt"。不幸的是,由于缺乏后缀搜索,目前无法做到这一点。

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

呵。

最新更新