
1 hangszhang 2023-06-25 13:13:33 +08:00 类似分库分表之后的分页问题,感觉得来个二级索引了 |
2 SakuraSa 2023-06-25 13:39:26 +08:00 每次查询上一页最后一个 item 的 score 之后的 10 个 item |
3 tf2 2023-06-25 13:41:07 +08:00 如果你要做分页,已经输了一半了。 |
4 cylx3124 2023-06-25 13:42:13 +08:00 |
5 leogm9408leo 2023-06-25 13:51:15 +08:00 参考 elasticsearch 的分片处理逻辑,查 top10 就是每个分片取各自的 top10 然后再合并后取 top10 ,取 10-20 也还是每个分片各取 top20 然后合并后取出 10-20 ,这是搜索上的经典问题“深分页问题”,所以搜索引擎都不会允许访问分页太深。 |
7 ben548 OP @leogm9408leo 查 90-100 条,有 200 个分片的话,就要查出 20000 条数据出来排序后再分页,这有点伤啊 |
9 SakuraSa 2023-06-25 15:02:29 +08:00 @ben548 那就定义一个不会重复的 score 呀,在原先的 score 上加上 id 的 hash 乘以一个很小的数之类的 |
10 SakuraSa 2023-06-25 15:07:36 +08:00 @ben548 以 score 排序,但是又存在 score 相同的情况,实际上相当于排序还依赖了插入顺序,这不是一个好的设计 |
11 Dlin 2023-06-25 15:44:21 +08:00 不知是不是我没看懂,我感觉除了全局视野法和业务折衷法之模糊法没问题外,其他两种问题都有问题,都需要前提条件:数据被排序的字段均匀分布且不可重复 |