issue-2026-04-03-按指定字段排序-TODO.md
971 Bytes
现在,如果前端指定按某个字段排序,以价格为例,那么ES搜索条件会加上 "sort": [ { "min_price": { "order": "asc" } } ], 但是,存在以下问题:
- 存在多重漏斗,粗排&重排,这里又把顺序搞乱了。
- 如果前端有指定排序、不走后面漏斗的话,那么,因为有knn召回,文本匹配也为了扩大召回有很多不相关召回(只有部分term匹配的),这些差结果因为强制按价格排序,不相关结果被排到了上面。
- 如果还是走重排,那么最后要加一轮截取topN再按价格排序,但是topN阈值不好定。
我的思路是:
- ES阶段,因为有宽泛召回,不加min_price排序
- 按价格排序的方案:在重排(final rank阶段),加一个“按指定字段排序”的处理流程。假设重排输出条数为K,那么看2/K~K之间是否有抖降点,从中选择一个合适的点进行重排。