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" 等的结果。