1

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

select * from tbl_name where field_name like '%bla bla%'

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

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

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

谢谢!伊兰。

4

1 回答 1

2

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

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

HTH。

于 2012-11-19T22:51:32.380 回答