1

次のユーザー入力が与えられた場合に、MSSQL フル テキスト エンジンで検索を実行したいと思います: "Hollywood square"

結果に、Hollywood と square[s] の両方が含まれるようにします。

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 に答える