使用 Sql Server 2008,如何使用全文搜索来实际找到精确的字符串匹配。我对此感到非常困难,而且我在网上找不到令人满意的解决方案。
例如,如果我正在搜索字符串“Bojan Skrchevski”,我希望第一个结果正是如此。
到目前为止,我已经尝试格式化字符串,如:“Bojan* NEAR Skrchevski*”并调用 CONTAINSTABLE 来获取结果,但该字符串的格式设置为返回更多结果,如 Bojana 和 Bojananana 等。我也尝试按排名排序,但仍然没有成功。
此外,在我的字符串中,我有一个数字序列,例如:“3 1 7”,但使用当前格式,它还会返回“7 1 3”等。
Example:
DECLARE @var varchar(4000);
SET @var = '"Oxford*" NEAR 24 NEAR 7 NEAR 5 NEAR "London*"'
SELECT [Key] FROM CONTAINSTABLE(dbo.[MyTable], [MyField], @var);
我希望能够获得准确的顺序。不会得到“Oxford 7 24 5 London”的结果。
如何格式化字符串才能正确完成此操作?
有2个选择
1)
这将获取名称中包含 Mountain 的所有项目
SELECT Name, ListPrice
FROM Production.Product
WHERE ListPrice = 80.99
AND CONTAINS(Name, 'Mountain');
GO
2)
这将获取文档中具有这 3 个字符串的所有项目,无论顺序如何
SELECT Title
FROM Production.Document
WHERE FREETEXT (Document, 'vital safety components' );
这取决于你真正想要什么,但我无法完全理解。
如果我没有抓住重点,请发布一个示例以及结果应该是什么。
kr,
Kristof
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)