【发布时间】:2018-08-30 16:53:12
【问题描述】:
我在 2 个不同的数据库上重现了该问题,因此这可能是一个普遍问题。
基本上我们在表格上使用全文搜索,假设我们有表格 customer,它有 ID、名称、地址等列。全文搜索在名称列上。
以下脚本仅适用于“某些”行
select name, *
from customer
where contains(name, N' "foo bar" ')
如果客户名称是 foo bar,那么它将被返回。但如果客户名称是“GET”,则不会返回,即
select name, *
from customer
where contains(name, N' "GET" ')
这不会返回该行,但如果我将名称的值更改为"GETS",那么它将返回。
很奇怪,可能"GET"是关键字,全文搜索不喜欢?我没有找到任何有关此的文档。
有没有办法绕过它?
【问题讨论】:
-
为什么不用 --> where name like '%foo bar%'?
-
我正在使用 MSSQL,我知道可以使用 LIKE %% 进行部分匹配,但由于我在名称上有索引,所以我想通过全文搜索进行更快的搜索。
标签: sql sql-server full-text-search contains keyword