外观
如何理解深分页与稳定排序的设计?
标准回答
基于大偏移的分页需要处理并跳过很多候选,越往后代价越高。面向连续浏览,可以考虑稳定排序与游标式分页;跨多分片时,排序中还需要稳定的唯一决胜字段,避免同分文档顺序漂移。
数据持续更新会改变候选与排序,分页可能出现重复或遗漏。若业务要求一段浏览过程的稳定视图,需要相应的一致性视图机制和有效期;不能把无限期游标当作无需维护的状态。
对于导出和离线遍历,应使用适合该目的的批量读取方案,与低延迟在线搜索隔离。普通用户只访问少量前页时,不必为不存在的随机深页需求牺牲所有查询性能。
追问与回答
按相关性分数排序怎样保证稳定
增加确定性的次级排序或使用引擎支持的稳定视图及游标,注意查询与排序参数必须保持一致。
能否让缓存永久保存所有页
结果会过期且组合数量巨大;应按访问分布、更新频率和成本选择缓存范围,并设置版本或失效条件。
易混淆点
- 把深分页耗时归因于网络而不看候选处理量。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q136