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