/** * 计算文章热度 * * @param date12最后一次访问时间yyyyMMddHHmm * @param hotNum * 上次热度 * @param visitNum * 新增访问量(一般为1) * @param hotWeight * 冷却系数(一般为19,24小时从100衰减到1,越大衰减的越快) * @return */ public static int getHotnum(String date12, Integer hotNum, Integer visitNum, int hotWeight) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm"); int minuteMinus = 0; try { minuteMinus = TimeTool.countMinuteMinus(sdf.parse(date12.substring( 0, 12)), new Date()); } catch (ParseException e) { log.error(e + e.getMessage()); } // 本期得分 = 上一期得分 × exp(-(冷却系数) × 间隔的小时数) + 本期本期票数 return Integer.valueOf(String.valueOf(Math.round(hotNum * Math.exp(-((float) hotWeight / 100) * minuteMinus / 60)))) + visitNum * 10; }
冷却系数(一般为19,24小时从100衰减到1,越大衰减的越快)
document.properties中修改config.doc.hot.weight=10