如何将用户的搜索查询转换为MS SQL全文查询语句

时间:2010-04-06 00:08:06

标签: sql sql-server full-text-search isabout

我已经为此寻找答案,我似乎无法找到应该有些简单的答案。

这与another question I asked有关,但它有所不同。获取用户搜索短语并将其放入CONTAINSTABLE(table, column, @phrase, topN )短语的最佳方法是什么?

比方说,例如用户输入:Books by "Dr. Seuss"

最好的方法是将其转换为会在ContainsTAble()短语中返回结果的内容吗?

我之前正在解析搜索短语并将ISABOUT("Books" WEIGHT(1.0), "by" WEIGHT(0.9), "Dr. Seuss" WEIGHT(0.8))写成{@ 1}}作为我的@phrase,但ISABOUT似乎正在返回奇怪的结果...尤其是当输入一个单词时。

任何想法?

1 个答案:

答案 0 :(得分:0)

我们在this article on SQL Server Central中实现了稍微修改过的代码版本。它使用Codeplex的Irony Compiler Construction Kit。

在使用保留字启动任何搜索查询时,原始版本中存在错误。例如,通过搜索“Orange”,它将识别OR项并期望未提供的二进制操作数。这在文章的讨论论坛中提供的一些代码中得到修复,该代码现在最多13页!