我想用一些相似距离算法(如 Jaro-Winkler)在我的数据库中搜索字符串。但是 EF Core 无法翻译此类表达式。所以你不能使用如下表达式:
query.Where(x => JaroWinkler.Similarity(x.Title, someText) > 0.5);
我的问题是如何使用 EF Core 实现这一点?有没有办法做到这一点?
我想用一些相似距离算法(如 Jaro-Winkler)在我的数据库中搜索字符串。但是 EF Core 无法翻译此类表达式。所以你不能使用如下表达式:
query.Where(x => JaroWinkler.Similarity(x.Title, someText) > 0.5);
我的问题是如何使用 EF Core 实现这一点?有没有办法做到这一点?
在您的数据库供应商 SQL 方言中实施算法并注册它https://docs.microsoft.com/en-us/ef/core/querying/user-defined-function-mapping
一些数据库供应商有一些用于全文搜索的比较算法或扩展(即MS Sql DIFFERENCE或 FREETEXT)
或用于内存处理。