我如何做一个全文关键词搜索



不是100%确定如何命名,但这是我的问题

说我想在一个字符串中找到多个单词,例如:"AHU Replacement"

现在用户可以将它存储在数据库中,作为

"Replacement of AHU"
"Replacement of the AHU"
"The AHU needs Replacing"

,而且很可能有更多的方式,所以我怎么写一个查询,可以扫描一个表,并检测所有这些基于这个搜索字符串作为一个例子,"AHU Replacement"将存储在一个表本身作为关键搜索

这个代码可以找到上面的前两个字符串,但是"Replacing"one_answers"Replacement"的变化是一个问题:

SELECT * FROM ProjectNotes where Notes like '%AHU%' and Notes like '%replacement%'

从我对你的问题的理解来看,你正在寻找的是全文搜索功能。全文搜索使用特殊类型的索引来做一些强大的事情,比如计算匹配的相关性。你可以用它做一些非常强大的字符串匹配这是其他任何方式都无法做到的。Sql server支持此功能。对于sql server 2012,请查看这篇文章,了解如何启用它。