Sql server SQL Server全文搜索语法
在示例中包括以下两个子句Sql server SQL Server全文搜索语法,sql-server,sql-server-2008,full-text-search,Sql Server,Sql Server 2008,Full Text Search,在示例中包括以下两个子句 CONTAINS(Name, ' "Mountain" OR "Road" ') 而且 CONTAINS(Description, ' Aluminum AND spindle '); 请注意,第一个示例将两个搜索词都放在双引号内,而第二个示例没有。我似乎找不到任何地方可以解释两者之间的区别 由于没有使用FORMSOF(屈折,…)或FORMSOF(同义词表,…),因此我只能假设在这两种情况下都会对单词进行字面上的比较。这意味着两个版本是相同的。那么,为什么在第一个示
CONTAINS(Name, ' "Mountain" OR "Road" ')
而且
CONTAINS(Description, ' Aluminum AND spindle ');
请注意,第一个示例将两个搜索词都放在双引号内,而第二个示例没有。我似乎找不到任何地方可以解释两者之间的区别
由于没有使用
FORMSOF(屈折,…)
或FORMSOF(同义词表,…)
,因此我只能假设在这两种情况下都会对单词进行字面上的比较。这意味着两个版本是相同的。那么,为什么在第一个示例中使用双引号呢?我的理解是,只有当搜索短语包含通配符或多个单词时,才严格要求使用引号。如果搜索短语是一个单词,并且没有使用通配符,那么严格来说,不需要双引号
CONTAINS(LastName, 'Anders') --double quotes not required
CONTAINS(LastName, '"Anders*"') --double quotes required since wildcard used. Match Anders, Anderson, etc
CONTAINS(Title, '"End of time"') --double quotes required, since multiple words
当然,即使不需要双引号,也可以使用双引号:
CONTAINS(LastName, '"Anders"')
以下是关于使用通配符时需要双引号的quote BOL:
如果文本和星号没有用双引号分隔,因此谓词读取CONTAINS(列“text*”),则全文搜索将星号视为字符,并搜索与文本*>