0

こんにちは、最大 180K のレコードを含むテーブルがあり、このテーブルで文字列を検索する必要があります。

たとえば、ユーザーがこの「パリのレストラン」のようなものを検索した場合、そのような表現を作成する必要があります

SELECT * FROM ListOfStrings
WHERE CONTAINS(Title, ' "Paris Restaurants" OR (Paris OR Restaurants) ')

ただし、1 つまたは複数の用語が存在する可能性があります。したがって、Contains 式を動的に作成する必要があります。

私はグーグルで検索しましたが、式を動的に作成することについて見つけることができませんでした。どんなアイデアでも大歓迎です。

4

1 に答える 1

0

検索語を受け入れる関数を使用して構築し、それを分割および結合して、目的の Contains 引数を与えることができます。

public string ContainsBuilder(string searchterm)
{
    var sb = new StringBuilder();
    sb.Append('"');
    sb.Append(searchterm);
    sb.Append('"');        
    sb.Append(" OR (");
    sb.Append(String.Join(" OR ",searchterm.Split(' ')));
    sb.Append(")");
    return sb.ToString();
}

このメソッドを呼び出すとparis restaurants、戻り値が返されます"paris restaurants" OR (paris OR restaurants)

于 2013-09-07T12:32:34.197 に答える