请问 如果搜索结果 汇总排序的时候 一台排序机器不下怎么解决?
比如 找前十的热词, 100太机器做data node, 然后汇总到同一台机器排序,看谁是精准前十, 但是有可能data node数据太多在一台汇总机器内存放不下,无法排序?
我能想到的解决方案
- 就是汇总机器做硬盘排序 但是感觉太慢了
- 借助类似redis这个样的sorted set这样的数据结构,但是引入了额外的复杂性
- 或者做多级汇总, 比如每10台汇总到一台, 然后在把汇总后的10台再汇总到一台 感觉复杂 (但感觉我目前觉得最好的一个)
不知道老师有没有其他更好的解决方案 谢谢
logic
2
课上我们把 Ranking 作为 out-of-scope 来处理。请问你这里的热词是依据什么来排序?
logic
4
一般来说搜索结果的排序是根据网页的质量和相关性来决定顺序。而每个关键词的热度是决定 Autocomplete 结果的主要因素。
我猜你这里问的是搜索结果的排序,一般都是多级的机器学习模型来解决。先把所有匹配的 document id 找到,用简单模型计算分数(可以分布式),排序并筛选出更少的 document id,再用更复杂的模型来计算分数,进一步排序筛选出最终的几百个网页返回给用户。