LrBucket_sort
2015-11-06 17:33:00 0 举报
LrBucket_sort是一种基于桶排序的算法,它通过将数据分配到不同的桶中,然后对每个桶中的数据进行排序,最后将各个桶中的数据合并起来得到最终的有序序列。该算法的时间复杂度为O(n+k),其中n是待排序的元素个数,k是桶的数量。相比于其他排序算法,LrBucket_sort具有空间利用率高、稳定性好等优点,适用于处理大规模数据集和多维度数据。同时,该算法也存在一定的局限性,如当数据分布不均匀时,可能会出现性能瓶颈等问题。因此,在使用LrBucket_sort时需要根据具体情况进行优化和调整。
作者其他创作
大纲/内容
设置精确命中的酒店列表
N
poi类关键词搜索:组合key,根据key从Redis中获得用户历史行为数据,解析用户历史行为数据获得酒店在当前关键词下的订单数,根据精确查找的结果构造用户行为数据,加载酒店的点击量、展示量和订单量,取得用户的历史行为数据和当天的实时行为数据,根据上面的数据计算出rank值,筛选出具有fts2_hotelName的酒店(精确命中酒店列表),把筛选出的酒店先按房态分组再组内按rank值分组,取得分组可订的酒店列表,从结果集中过滤掉精确命中的可订酒店列表,将结果集按rank从大到小的顺序排列
合并各房态分组的酒店列表
关键词搜索
非poi类关键词搜索
遍历searcher返回的结果,取得相关度属性,当相关度属性大于等于完全命中阈值时,将命中的酒店插入到List首位,当不存在推荐酒店时,筛选出可预定的酒店,否则不筛选(例如:EmptySearcher返回的酒店列表中不存在推荐酒店,QuerySearcher返回的酒店列表中存在推荐酒店)
精确命中酒店个数大于1
同城空搜索:加载酒店的点击量、展示量和订单量,取得用户的历史行为数据和当天的实时行为数据,计算出rank值并根据rank值从高到低排序
普通搜索
同城搜索
根据酒店的营业状态进行排序,排列顺序为营业中 筹建中 暂停营业 已停业 删除
非poi类关键词搜索:组合key,根据key从Redis中获得用户历史行为数据,解析用户历史行为数据获得酒店在当前关键词下的订单数,加载酒店的点击量、展示量和订单量,根据不同场景获得手机平均订单和订单方差,加载酒店21天的订单和均价,根据上面的数据计算出rank值并根据rank值从高到低排序
poi过滤
存在poi关键词
Y
商圈搜索
身边空搜索
身边空搜 || 钟点房搜索
同城空搜索
地图找酒店 || 身边找酒店
非同城空搜索
非关键词搜索
poi类关键词搜索
利用公共比较器排序
非同城空搜索:加载酒店的点击量、展示量和订单量,取得用户的历史行为数据和当天的实时行为数据,计算出rank值并根据rank值从高到低排序
普通排序:筛选出具有fts2_hotelName的酒店(精确命中酒店列表),把筛选出的酒店先按房态分组再组内按rank值分组,取得分组可订的酒店列表,从结果集中过滤掉精确命中的可订酒店列表top2,将结果集先利用公共比较器排序再利用营业状态比较器比较
精确命中酒店列表按照关键词相关性进行排序
利用营业状态比较器排序
合并房态分组列表
身边空搜索:加载酒店的点击量、展示量和订单量,取得用户的历史行为数据和当天的实时行为数据,计算出rank值并根据rank值从高到低排序
根据酒店离地标点的归一化距离从小到大排序,若归一化距离相等且等于5km,则根据实际距离从小到大排序,若归一化距离相等且不等于5km,则根据无线rank值从大到小排序
0 条评论
回复 删除
下一页