SQL Server 2008 sprocに入力するキーワードのリストを使用してテキスト関連性関数を作成し、テーブル行のリストを返すフリーテキスト検索を実行する必要があります。
行ごとに、「ParseForKeywords(result、listOfKeywords)AS Parsed Result」などの関数を使用して、結果フィールドに基づいて新しい文字列を作成します。
listOfkeywordsは、コンマまたはスペースで区切られた単語のリストになります。
結果がたとえば100語よりも大きい場合は、次の手順を実行します。キーワードのいずれかの最初の出現を検索し、5または6語を減算し、そこから結果文字列の長さの新しい文字列を開始します。
結果が200語より大きい場合は、上記と同じように、次の50語について、キーワードの次の出現箇所から5または6語を引いたものを見つけ、「...」を追加します。
私が探しているのは出発点であり、このロジックを最適な場所に配置するためのアドバイスです。SQLServerで、またはDataTableセルにデータを入力するときに.Netコードにこれを実行させますか?
TSQL関数でこれを行う場合:まず、カーソルまたはCTEを作成して、コンマで区切られた単語のリストをループします。各パスで。いずれかの単語の最初の出現を見つけるには、キーワードの数をループして、最小のCHARINDEX()値を見つける必要があります。
WHERE IN('word1'、'word2'、'word3')を実行する方法はありますか?
これが見つかったら、たとえば4スペースを数えるまで、そのcharindex値からx個の文字を減算します。また、これらの単語のいずれかがテキストの後半で発生するかどうかを確認する必要があります。その時点で、プロセス全体が繰り返されます。
これを今見ると、少なくとも2つの機能が必要になります。
ありがとう。