【发布时间】:2022-02-09 16:18:16
【问题描述】:
我正在为我们的 api 中的用户实现搜索功能。搜索将查询我们的数据库以获取与搜索词匹配的前 N 个用户。我想在“最佳匹配”之后对用户进行排序,以便最相关的用户位于顶部。
我想做的是这样的:
var users = await _dbContext.Users
.IncludeUserData()
.Where(u => u.Name.Contains(searchTerm))
.OrderBy(u => u.Name.IndexOf(searchTerm)) <- This row is not possible
.ToListAsync();
基本上,包含搜索词 early 的名称排在名称包含该词 late 的用户之前。
例如 如果 searchTerm 是“Simon”,Simon Carlsson 应该排在 Carl Simonsson 之前
使用 SQL Server 作为数据库提供程序
我如何通过查询实现排序,其中名称与 searchTerm 更匹配的用户在列表中排名靠前?
【问题讨论】:
标签: sql-server entity-framework-core