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
lambdaq 2023-06-25 13:41:07 +08:00 1
如果你要做分页,已经输了一半了。
|
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
不知是不是我没看懂,我感觉除了全局视野法和业务折衷法之模糊法没问题外,其他两种问题都有问题,都需要前提条件:数据被排序的字段均匀分布且不可重复
|