你能在SQL Server 2005上使用FREETEXT()执行关键字的AND搜索吗?

3

有一个请求,希望在使用多个术语时,SO搜索默认为AND样式功能而不是当前的OR。

官方回复如下:

这并不像听起来那么简单;我们使用SQL Server 2005的FREETEXT()函数,我找不到指定AND vs. OR的方法--你能吗?

那么,有办法吗?

我可以找到一些相关资源,但我不是专家。


答案在这里,声称这是不可能的。 - Sören Kuklau
3个回答

2
据我所见,在使用SQL 2005(或2008)下,使用FREETEXT()时不可能进行AND操作。
FREETEXT查询会忽略布尔、接近度和通配符运算符。但是你可以这样做:
WHERE FREETEXT('You gotta love MS-SQL') > 0
 AND FREETEXT('You gotta love MySQL too...') >  0

这是我认为的:

-- 这个想法是将它计算为布尔值,这样你就可以使用布尔运算符。不知道这是否会导致错误。我认为它应该可行。但参考资料指出,这是基于设计考虑而不可能实现。

使用CONTAINS()代替FREETEXT()可能会有所帮助。


1
我刚开始了解freetext,所以请您耐心等待。如果您想要的是允许搜索一个标签,比如VB,并且还希望搜索到被打上了VB6,Visual Basic,VisualBasic和VB.Net标签的内容,那么这些值应该被设置为同义词而不是查询参数存储在数据库的词库中。
如果确实是这种情况,那么这篇 MSDN上的文章 将会解释如何添加项目到词库中。

1

好的,这个更改已经完成了 - 现在我们使用 CONTAINS() 代替 FREETEXT() 并且它有隐式的 AND 而不是隐式的 OR


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接