2008-08-24 60 views
3

有一个request使SO搜索默认为一个AND样式功能超过当前OR或多个条款时使用。您可以使用SQL Server 2005上的FREETEXT()执行AND关键字搜索吗?

官方的回应是:

并不简单,因为它的声音;我们使用SQL Server 2005的FREETEXT()函数,并且我找不到指定AND与OR的方法 - 可以吗?

那么,有没有办法?我可以找到一个number of resources,但我不是专家。

+0

答案[over here](http://www.eggheadcafe.com/software/aspnet/32492834/freetext-and-or.aspx)声称这是不可能的。 – 2008-08-24 19:11:58

回答

1

好的,这种变化是在 - 我们现在使用CONTAINS()隐含的AND而不是FREETEXT()及其隐含的OR

2

据我所见,它是而不是可能做和当在SQL 2005(或2008,afaik)下使用FREETEXT()。

FREETEXT查询忽略布尔,邻近和通配符运算符的设计。然而,你可以这样做:

WHERE FREETEXT('You gotta love MS-SQL') > 0 
AND FREETEXT('You gotta love MySQL too...') > 0 

或者说,就是我认为:)

- 我们的想法是让计算结果为布尔值,因此您可以使用布尔运算符。不知道这是否会导致错误。我认为应该工作。但参考资料指出这是不可能的设计。

使用CONTAINS()而不是FREETEXT()可以提供帮助。

1

我刚开始阅读有关自由文本,所以忍受着我。如果你试图做的是允许搜索标签,比方说VB,还可以找到标签为VB6,Visual Basic,VisualBasic和VB.Net的东西,那么这些值不会被设置为DB的同义词库中的同义词而不是查询参数?

如果的确如此,这link on MSDN解释如何将项目添加到同义词库。

相关问题