2011-08-12 9 views
0

SQLテーブルから結果を取得する方法。
私のアプリケーションでは全文検索を使用しました。
私が入手したい:SQLサーバーの単語でレコードをフィルタリングする方法は?

たとえば、 "大イベント"のような単語を入力した場合。結果は以下のようになるはずです。単語全体「大イベント」とし、

  • 「グレート」に関連する結果、その後
  • 「イベント」に関連する結果に関連

    1. 最初の結果。

    最初の結果は、検索用語「大イベント」全体のすべての更新である必要があります。あなたはこれらの結果は、その後、基本的に用語「大イベント」、「大イベント」など
    「大イベント」という用語が含まれている言葉で更新情報を表示する表示した後にのみ

    次に、「Great」と「Events」の両方の単語とそのバリエーションの更新結果を表示します。二つの単語のいずれかを持っているアップデートから
    最後に、ショーの結果...

    私のテーブルが好き: 列

    UserUpdates


    更新ID -
    ユーザーIDをint型 -
    MSGTEXTをint型を - nvarchar(500)
    CreatedOn - 日時

    SQLスクリプトの使用方法..?

  • +0

    検索式の単語数も動的になりますか?ワイルドカードを許可しますか? –

    +0

    はい。ユーザーが検索テキストボックスに入ると、テキスト全体の結果が得られます.....ワイルドカードの使用を許可する? –

    +0

    ワイルドカードを許可すると、ユーザーは「Great Event *」の例を検索できるようになります。*は単語を終わらせるために何かに置き換えることができます。 –

    答えて

    1

    フルテキストカタログを作成し、これを解決するためにフルテキストインデックスをテーブルに追加することができます。

    これを行うには、簡単なパーサーをc#で作成して検索用語を取得し、検索キーワードを作成します。

    「『偉大なイベント』 OR(グレート・イベント)」

    をあなたはよりその検索キーワードに基づいて、このようなクエリを作成することができます:のようなものに、「偉大なイベント」の検索を回す

    RANK DESC BY ORDER

    上記は、英語、英国(2057)とデフォルトのためであるCONTAINSTABLE FROM

    SELECT *([YourFullTextIndexTable]、*、 ' "偉大なイベント" OR(グレート・イベント)'、2057,0)ストップリスト(0)。

    これは、 "グレートイベント"を含むレコードをフレーズとして返し、次にGreatとEventsのレコードをどこかに返します。

    +0

    ありがとうございます。私はすでにフルテキストを作成しました。あなたが 'Great And Events'と言ったような動的なクエリを作成できますか?ユーザーが 'Abc def ghi'を検索すると、単語を分割してクエリに追加する必要があります。 –

    関連する問題