有关SQL Server全文搜索语法的问题

时间:2011-06-15 12:49:17

标签: sql-server sql-server-2008 full-text-search

我正在尝试研究全文搜索语法的一些更精细的细节。我有基本知识,但遇到了以下问题。

  1. this page的顶部附近,它显示需要双引号的情况,并包含示例“燕麦片”。为什么这需要双引号?这是一个错字吗?

  2. same page的底部附近,它指出应包裹ANDAND NOTOROR NOT的所有实例在某些情况下引用。为什么?反正这些不是停止的话吗?

  3. This page提供了一些示例,其中包含引用和未引用的搜索字词。 CONTAINS(Column, 'term')CONTAINS(Column, '"term"')之间有什么区别?

1 个答案:

答案 0 :(得分:2)

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

"Oatmeal"
"Hot Oatmeal"

2)我认为“and and not or not”部分中的逻辑是找到布尔术语并将内容包装在引号中。

e.g. OatMeal or Hot Oatmeal

翻译为

'"Oatmeal" or "hot oatmeal"'

而不是

'oatmeal "or" hot oatmeal'

3)它应该是contains(列,'terms')containsstable将使用3 term查询containsstable(table,column,'terms')我在数据库上做了一些测试,其中包含30k文件(< em>,'“牙医”')和包含(,'牙医')返回相同的652行。 Containstable以相同的排名返回它们。