MSSQL 2005 データベースから一致する行を返す単純な検索テキスト ボックスを備えた asp.net Web ページがあります。現在、LIKE ステートメントを使用して一致を戻していますが、ユーザーは正確なフレーズを入力する必要があります。ユーザーはより多くの Google 検索タイプのエクスペリエンスを求めているため、FTS を使用して必要なテーブルをセットアップしてインデックスを作成することにしました。
ユーザーがテキスト ボックスに入力する各単語を NEAR で区切って CONTAINS 検索で使用する単語または単語を検索してほしいと思います。私は新しい開発者で、これを行う方法がわかりません。または、これをカバーする組み込み関数が既にあるかどうかもわかりません。
たとえば、ユーザーが検索ボックスに「Sawyer Tom」と入力すると、クエリは次のように機能します。
SELECT BookID, BookTitle FROM tblBooks WHERE CONTAINS(BookTitle, 'Sawyer NEAR Tom')
そして戻る:
12032 トム・ソーヤーの冒険
現在、ユーザー検索で like ステートメントを使用しても、一致するものは見つかりません。
ユーザーが単純に Sawyer と入力した場合、クエリは次のように単純に機能するはずです。
SELECT BookID, BookTitle FROM tblBooks WHERE CONTAINS(BookTitle, 'Sawyer')
戻る:
12032 トム・ソーヤーの冒険 72192 ロイ・クレインのバズ・ソーヤー: 太平洋戦争 (Vol. 1)
私の現在のコードは、次のように検索文字列をクエリに差し込むだけです。
SELECT BookID, BookTitle FROM tblBooks WHERE CONTAINS(BookTitle, @Search)
これは明らかに機能しません。各単語を NEAR で自動的に区切るにはどうすればよいですか?
あなたが提供できる助けを前もって本当にありがとう!
-デビッド