SQL:如果搜索短语里面有数字,全文搜索不起作用?

时间:2016-07-05 07:31:52

标签: sql-server full-text-search match-phrase

我的搜索短语是"测试文档"。

我有一个带有全文搜索短语的查询,如下所示:

SELECT doc.iEntityId, doc.strName, doc.iHandbookId
FROM m136_tblDocument doc
WHERE iLatestApproved = 1
AND doc.iDeleted = 0
AND (
(CONTAINS(doc.strName, '"test doc*"')))

结果如下图: result

但是,如果我尝试将搜索短语放在"测试文档3"。

没有任何打击。 result

我的预期会给出3次点击: test docyument 23 test doc 3 test doc 1.3.1

任何人都可以帮助我吗?

提前感谢。

1 个答案:

答案 0 :(得分:0)

全文主要针对文本,大文本。在你的例子中,你正在寻找一些小东西。小是任何短于约100个字符的文本。

此代码将始终适用于您。

SELECT doc.iEntityId, doc.strName, doc.iHandbookId
FROM m136_tblDocument doc
WHERE iLatestApproved = 1
AND doc.iDeleted = 0
AND doc.strName LIKE '%test doc 3%'

使用全文可能有点问题。在Microsoft connect上发现了该功能的错误。 为了正确使用该功能,您必须为其阅读BOL。例如,这个很好地描述了这个特征 - https://www.simple-talk.com/sql/learn-sql-server/sql-server-full-text-search-language-features/

对于你的情况,我建议用LIKE替换它,不用担心。索引可以提高查询性能。对其进行简短调整,看看是否需要索引。