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"')
感谢您的交代。那么如何在使用fullText的第二个查询中完成结果,所以我不必使用昂贵的类似子句呢? – Justin 2012-02-06 23:00:24
@Justin:在我的回答中看到示例代码。 – 2012-02-06 23:02:04
完美!文档中的示例不太好。 – Justin 2012-02-06 23:03:18