SQLServer的全文搜索没有返回预期的结果

问题描述:

select homephone,lastName from DEBTOR where contains((lastName,homephone),'"Smith" AND "99 999 9999"') 

第一个查询返回与AND子句没有结果但与OR子句预期工作,返回一些记录与史密斯的姓氏和一些带有99 999 9999' 为电话。SQLServer的全文搜索没有返回预期的结果

我想在FullText中模拟下面的查询。 我错过了什么?

select homephone,lastname from DEBTOR where lastName = 'Smith' and homePhone = '99 999 9999' 

CONTAINS子句中的列表不是位置的。正如你写的查询,你说你要搜索姓氏的HOMEPHONE列,的列中的一个必须包含“史密斯” “99 999 9999“。

相反,拆出来分为两个独立的CONTAINS操作:

SELECT homephone,lastName 
    FROM DEBTOR 
    WHERE CONTAINS(lastName,'"Smith"') 
     AND CONTAINS(homephone,'"99 999 9999"') 
+0

感谢您的交代。那么如何在使用fullText的第二个查询中完成结果,所以我不必使用昂贵的类似子句呢? – Justin 2012-02-06 23:00:24

+0

@Justin:在我的回答中看到示例代码。 – 2012-02-06 23:02:04

+0

完美!文档中的示例不太好。 – Justin 2012-02-06 23:03:18