嗨,我有一个包含约 180K 记录的表,我需要在此表中搜索字符串。
例如,如果用户搜索类似“巴黎餐厅”的内容,我需要创建这样的表达式
SELECT * FROM ListOfStrings
WHERE CONTAINS(Title, ' "Paris Restaurants" OR (Paris OR Restaurants) ')
但可能有一个或多个术语。所以我需要动态创建包含表达式。
我用谷歌搜索,但找不到关于动态创建表达式的信息。任何想法,将不胜感激。
嗨,我有一个包含约 180K 记录的表,我需要在此表中搜索字符串。
例如,如果用户搜索类似“巴黎餐厅”的内容,我需要创建这样的表达式
SELECT * FROM ListOfStrings
WHERE CONTAINS(Title, ' "Paris Restaurants" OR (Paris OR Restaurants) ')
但可能有一个或多个术语。所以我需要动态创建包含表达式。
我用谷歌搜索,但找不到关于动态创建表达式的信息。任何想法,将不胜感激。
您可以使用接受搜索词的函数进行构建,然后将其拆分和连接以提供所需的 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)