3

当使用多个术语时,请求将 SO 搜索默认为与当前 OR 相比的 AND 样式功能

官方的回应是:

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

那么,有没有办法呢?

我可以找到很多关于它的资源,但我不是专家。

4

3 回答 3

2

据我所见,在 SQL 2005(也不是 2008,afaik)下使用 FREETEXT() 时无法执行 AND

FREETEXT 查询在设计上会忽略布尔、邻近和通配符运算符。但是你可以这样做:

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

或者这就是我的想法:)

-- 这个想法是让它评估为布尔值,所以你可以使用布尔运算符。不知道这是否会出错。我认为它应该工作。但是参考资料指出,这是设计上不可能的。

使用 CONTAINS() 而不是 FREETEXT() 可能会有所帮助。

于 2008-08-24T19:10:34.207 回答
1

我刚开始阅读自由文本,所以请耐心等待。如果您尝试做的是允许搜索标记,例如 VB,还可以找到标记为 VB6、Visual Basic、VisualBasic 和 VB.Net 的内容,那么这些值不会在 DB 的词库中设置为同义词而不是查询参数?

如果确实如此,MSDN 上的此链接说明了如何将项目添加到同义词库。

于 2008-08-24T19:46:56.867 回答
1

好的,这个变化在——我们现在使用CONTAINS()with implicitAND而不是FREETEXT()和它的 implicit OR

于 2008-08-24T23:40:09.253 回答