使用全文搜索查找完全匹配

The*_*yan 5 sql full-text-search sql-server-2008

使用Sql Server 2008,如何使用全文搜索实际找到精确的字符串匹配.我真的很难过,而且我无法在网上找到满意的解决方案.

例如,如果我正在搜索字符串"Bojan Skrchevski",我希望第一个结果就是这样.

到目前为止,我已经尝试将字符串格式化为:"Bojan*NEAR Skrchevski*"并调用CONTAINSTABLE来获取结果,但是这个字符串被格式化为返回更多结果,如Bojana和Bojananana等.我也尝试了ORDER BY RANK,但仍然没有成功.

此外,在我的字符串中我有一个数字序列,如:"3 1 7",但使用当前格式,它也返回"7 1 3"等.

例:

DECLARE @var varchar(4000);
SET @var = '"Oxford*" NEAR 24 NEAR 7 NEAR 5 NEAR "London*"'
SELECT [Key] FROM CONTAINSTABLE(dbo.[MyTable], [MyField], @var);
Run Code Online (Sandbox Code Playgroud)

我希望能够得到确切的订单.结果不要"牛津7 24 5伦敦".

如何格式化字符串以正确完成此操作?

The*_*yan 0

也许一种方法是通过全文搜索选择多个结果,然后SELECT从这些结果中选择特定的结果。但也许可以有更好的解决方案。

我尝试了这个方法并且确实有效。SELECT它的工作速度也比仅计算值要快得多。