0

我的搜索词组是“测试文档”。

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

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

但是如果我尝试输入搜索短语是“test doc 3”。

它没有任何打击。 结果

我的预期将获得 3 次点击: test docyument 23test doc 3test doc 1.3.1

任何人都可以帮助我吗?

预先感谢。

4

1 回答 1

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 替换它,不用担心。索引可以提高查询性能。对其进行简短调整以查看是否需要索引。

于 2016-07-05T08:17:40.510 回答