2011-06-15 71 views
2

我正在尝试解决全文搜索语法的一些更精细的细节。我已经掌握了基础知识,但是遇到以下问题。有关SQL Server全文搜索语法的问题

  1. this page顶部,它显示了在需要双引号例,包括示例性“燕麦片”。为什么这需要双引号?这是一个错字吗?

  2. same page的底部,它指出的ANDAND NOTOR,或OR NOT应包在某些情况下,报价的任何实例。为什么?无论如何,这些阻止词不是吗?

  3. This page提供了许多例子,包括引用和不引用的搜索条件。 CONTAINS(Column, 'term')CONTAINS(Column, '"term"')有何区别?

回答

2

1)全文搜索使用双引号作为文本分隔符,如果你很可能有更复杂的搜索条件的很好的做法,尤其是使用它们。例如。您可以将短语或单词放在双引号中。

"Oatmeal" 
"Hot Oatmeal" 

2)我认为在逻辑“和而不是或者与否”部分是因为这是找到布尔条件和用引号括内容两侧。

e.g. OatMeal or Hot Oatmeal 

转化为

'"Oatmeal" or "hot oatmeal"' 

而不是

'oatmeal "or" hot oatmeal' 

3)它应该是包含(列, '条款')CONTAINSTABLE将使用3项查询CONTAINSTABLE(表,列,'terms')我已经在一个数据库上做了一些测试,其中包含了包含(,'“牙医”')和包含(,'牙医')的30k文档返回了相同的652行。 Containstable使用相同的排名返回它们。

+0

谢谢。那么如果关于燕麦片的声明需要引用一个错误,你有什么看法?看起来我的#3没有区别。我修正了你指出的错别字。 – 2011-06-15 14:44:40