我想使用MSSQL全文引擎运行搜索,其中给出以下用户输入: “好莱坞广场”
我希望结果中包含好莱坞和正方形。
我可以在Web服务器(C#,ASP.NET)上创建一个方法来动态生成这样的sql语句:
SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,'"hollywood*"')
AND CONTAINS(TITLE, '"square*"')
够容易。但是,我希望在存储过程中增加速度,增加参数的安全性。
我可以吃蛋糕吗?
答案 0 :(得分:0)
上一次我不得不这样做(使用MSSQL Server 2005)我最终将整个搜索功能转移到Lucene(Java版本,尽管Lucene.Net现在存在,我相信)。我对全文搜索寄予厚望,但这个具体问题让我非常恼火。
答案 1 :(得分:0)
您是否尝试在字符串中使用AND逻辑运算符?我将一个原始字符串传递给我的sproc并在单词之间添加'AND'。
答案 2 :(得分:0)
我同意上述内容,查看AND条款
SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,'"hollywood*" AND "square*"')
但是你不必分割输入句子,你可以使用变量
SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,@parameter)
顺便说一下
搜索确切的术语(包含)
搜索短语中的任何术语(自由文本)