全文搜索未返回正确的结果

时间:2016-05-06 16:23:30

标签: sql tsql full-text-search sql-server-2014 stop-words

我们的数据库中的xml字段有一个全文索引。

如果我运行此查询:

select *
  from UserProfile
  where CONTAINS(UserData,'028894507')

我得到了正确的结果。但是,如果我运行此查询:

select *
  from UserProfile
  where CONTAINS(UserData,'02889')

我得到了完全不同的结果集,它甚至不包含第一个查询的结果。

我做了一个快速的谷歌搜索,发现有停止的话可以甩掉结果,但我的数据库中甚至没有停止列表...

1 个答案:

答案 0 :(得分:0)

我不是TSQL专家,但是 - 我相信CONTAINS搜索全字匹配。您还可以使用*字符搜索前缀匹配。

select * from UserProfile where CONTAINS(UserData,'"02889*"')

这应匹配包含028894507的行,以及带有以02889开头的数字的任何行。请注意,在进行前缀匹配时,双引号很重要。

https://msdn.microsoft.com/en-us/library/ms187787.aspx