【问题标题】:Syntax Error with Full-Text Search全文搜索的语法错误
【发布时间】:2013-01-05 06:02:07
【问题描述】:

我的查询如下

select * from Test where contains (Description,'NEAR((method,system),3')

在 SQL Server 2008 中显示错误。

Syntax error near '(' in the full-text search condition 'NEAR((method,system),3'

这有什么问题?

【问题讨论】:

  • 全文检索条件'NEAR((method,system),3'中'('附近的语法错误》
  • 我的描述栏取值如下 描述: 1)操作方法及其通信系统 2)基于区域的容量控制方法和系统 描述字段有两个值。如果我给出的值是在 sql server 2008 中使用 near 运算符的方法和系统,它将显示结果为“操作方法及其通信系统”......你能帮帮我吗?

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


【解决方案1】:

如果您想以这种方式使用 NEAR 运算符,则应升级到 SQL Server 2012。此语法在以前的版本中不可用,因为它是 2012 版本的新功能。

如果你比较MSDN上的文档2008 version2012 version,你会发现2008不支持语法。

2012 年的语法:

<custom_proximity_term> ::= 
  NEAR ( 
     {
        { <simple_term> | <prefix_term> } [ ,…n ]
     |
        ( { <simple_term> | <prefix_term> } [ ,…n ] ) 
      [, <maximum_distance> [, <match_order> ] ]
     }
       ) 

      <maximum_distance> ::= { integer | MAX }
      <match_order> ::= { TRUE | FALSE } 

2008 年的语法:

<proximity_term> ::= 
     { <simple_term> | <prefix_term> } 
     { { NEAR | ~ }
     { <simple_term> | <prefix_term> } 
     } [ ...n ] 

【讨论】:

    【解决方案2】:

    您的查询格式不正确。使用这个:

    select * from Test where contains (Description,'NEAR((method,system),3)')
    

    【讨论】:

    • 我已经检查了这些查询“select * from Test where contains (Description,'NEAR((method,system),3)')”但又出现了同样的错误。
    • 错误:全文搜索条件'NEAR((method,system),3)'中'('附近的语法错误
    • @gunaa 此答案仅在您安装了 SQL Server 2012 时才是正确的。看我的回答。
    猜你喜欢
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2016-03-03
    • 2012-03-15
    • 2013-07-25
    • 1970-01-01
    相关资源
    最近更新 更多