使用sql搜索字符串包含并使用ASP.Net构建“包含”表达式

时间:2013-09-07 12:08:20

标签: asp.net sql-server full-text-search

我有一个包含~180K记录的表,我需要在此表中搜索字符串。

例如,如果用户搜索此类“巴黎餐厅” 我需要创建像那样的表达式

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

但可能有一个或多个术语。所以我需要动态创建包含表达式。

我用谷歌搜索,但我找不到动态创建表达式。 任何想法都将不胜感激。

1 个答案:

答案 0 :(得分: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)