1

我想在给定以下用户输入的情况下使用 MSSQL 全文引擎运行搜索:“好莱坞广场”

我希望结果中同时包含好莱坞和正方形。

我可以在 Web 服务器(C#、ASP.NET)上创建一个方法来动态生成这样的 sql 语句:

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,'"hollywood*"')
AND CONTAINS(TITLE, '"square*"')

很容易。但是,我希望在存储过程中这样做,以增加速度优势和添加参数的安全性。

我可以把我的蛋糕也吃掉吗?

4

3 回答 3

0

上次我不得不这样做(使用 MSSQL Server 2005)时,我最终将整个搜索功能转移到了 Lucene(Java 版本,尽管我相信现在存在 Lucene.Net)。我对全文搜索寄予厚望,但这个具体问题让我非常恼火,我放弃了。

于 2009-02-10T08:38:20.537 回答
0

您是否尝试过在字符串中使用 AND 逻辑运算符?我将一个原始字符串传递给我的 sproc,并在单词之间填充“AND”。

http://msdn.microsoft.com/en-us/library/ms187787.aspx

于 2009-02-17T05:36:45.077 回答
0

我同意上述观点,请查看 AND 子句

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,'"hollywood*" AND "square*"')

但是,您不必拆分输入句子,您可以使用变量

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,@parameter)

顺便搜索确切的术语(包含) 搜索短语中的任何术语(自由文本)

于 2009-02-17T19:44:07.923 回答