首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据其他服务的相关性对列表进行排序的最佳方法是什么?

问根据其他服务的相关性对列表进行排序的最佳方法是什么?
EN

Software Engineering用户
提问于 2022-04-13 20:45:16
回答 1查看 109关注 0票数 -1

我有一个产品列表服务,它将为登录用户提供产品列表,列表被分页,每页有10个产品。我使用MySQL LIMIT查询实现了这个分页。

最近,我得到了将其与关联服务集成的要求;该服务将提供与当前登录用户相关的产品属性。我需要根据与用户相关的信息对产品进行排序。

代码语言:javascript
复制
var page_no = 0;
var url = "https://relevancy-service-url"
var query = "SELECT * FROM products LIMIT 10 OFFSET page_no;"
var product_list = query -> fetch
var relevent_attributes = api -> get(url, user_id)

这里,relevent_attributes是一个数组,它包含以下格式的项:

代码语言:javascript
复制
[attribite_1 : 40, attribute_2: 20, attribute_3: 10, attribute_4: 3]

这里的键是属性名,值是排名。根据属性排序,我需要对产品列表进行排序。

对这个列表进行排序的最好方法是什么?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2022-04-14 08:10:28

分页是排序后需要发生的事情。如果要先分页然后排序,则只对当前页进行排序,这不是您想要的。

其次,一般性能建议您希望在数据库服务器上进行分页,而不是在内存中;只是为了避免加载所有数据,然后再过滤其中的大部分数据。

这导致了一个不可避免的结论,即在获取数据之前必须事先知道排序,因为该查询需要包括特定的排序顺序。

  1. 从关联服务中获取相关列
  2. 根据相关性数据(=排序顺序)和当前分页设置创建查询
  3. 实例化并返回查询结果
票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/438059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档