我有一个 SQL 2008 数据库,为我的一个表设置了全文目录,目标是能够从 asp.net c# 网站对该表进行自由文本搜索,其中自由文本值可能有多个关键字。使用 SQL Management Studio,我可以手动运行查询,例如:
SELECT * FROM KnowledgeFAQ_Answers WHERE FREETEXT ((Title, [Text]), 'application deadlines') Order By Rank() Over (Order By Title)
一切正常。在我进行查询之后,我在我的网站中创建了我的数据访问代码,并且在大多数情况下它工作正常,但在某些情况下我有差异。似乎某些较小的单词出现在搜索字符串中时,只会返回一个空的数据读取器;但是,直接在 SQL Management Studio 中测试相同的短语会正确返回结果。因此,例如,“admissions deadline”将起作用并返回带有结果的读者,但“has admissions deadline”突然不返回任何内容,尽管手动运行查询会产生结果。某些词,我看不出有什么特别的原因,会导致 0 个结果,但也不会产生 SQL 错误……只是返回空的数据读取器。似乎 sqlcommand 对象以某种方式特别解析这些 t 破坏语法但不产生匹配。有没有人有一个通过 sqlcommand 对象和/或推理为什么这不起作用的自由文本查询中的多个关键字的工作示例?......在这里完全不知所措。