Sql 使用通配符后缀的服务器全文搜索 Entity Framework 6 拦截器
Sql Server Full-Text Search with wild card suffix using Entity Framework 6 Interceptor
http://www.entityframework.info/Home/FullTextSearch
此示例适用于全词搜索,但没有讨论如何实现通配符后缀。
例如,我可以在 SQL 中执行以下操作,并在最后使用“*”获得 "bill" 或 "billy" 的结果。如何将其添加到我的拦截器中?
select * from dbo.messagethread a
where contains(Text, '"bil*"')
如果您查看上面 link 中的示例代码,我在想这样的事情(下面)是否可行,但显然这是行不通的,因为它没有被添加到参数名称中值。
string.Format(@"contains([].[], @{0} *)", parameter.ParameterName));
SQL.
中全文有题目like this one讲通配符
在问题中提供的示例 link 中查找这一行。
parameter.Value = value;
然后,要进行前缀匹配,只需在其下方添加这一行。
value = $"\"{value}*\""; // prefix match
我们主要是将参数的值更改为将 * 放在双引号内。
现在,如果您搜索 "bil",您会得到 "bill"/"billy" 等的结果。
http://www.entityframework.info/Home/FullTextSearch
此示例适用于全词搜索,但没有讨论如何实现通配符后缀。
例如,我可以在 SQL 中执行以下操作,并在最后使用“*”获得 "bill" 或 "billy" 的结果。如何将其添加到我的拦截器中?
select * from dbo.messagethread a
where contains(Text, '"bil*"')
如果您查看上面 link 中的示例代码,我在想这样的事情(下面)是否可行,但显然这是行不通的,因为它没有被添加到参数名称中值。
string.Format(@"contains([].[], @{0} *)", parameter.ParameterName));
SQL.
中全文有题目like this one讲通配符在问题中提供的示例 link 中查找这一行。
parameter.Value = value;
然后,要进行前缀匹配,只需在其下方添加这一行。
value = $"\"{value}*\""; // prefix match
我们主要是将参数的值更改为将 * 放在双引号内。 现在,如果您搜索 "bil",您会得到 "bill"/"billy" 等的结果。