11-9作业回答
来源:11-9 【总结与作业】关于广告检索服务的介绍及作业

mapper
2019-02-26
作业1:推广计划和推广的状态怎么修改呢 ?应该由谁去做修改呢 ?
答: 推广计划有startDate和endDate, 所以感觉需要做一个定时器,每天某个时间检测endDate是否已经到期,如果到了就修改状态。同样,如果在endDate之前的想置为无效的话,感觉需要一个专门的管理员系统去管理,可以人为修改推广单元,推广计划,以及广告创意等信息。
作业2:为什么匹配过程没有校验推广计划的开始和结束时间呢 ?
答: 这个想让我们去扩展吧,因为校验和过滤其实并不难,我们根据过滤掉任意我们想过滤的条件
作业3:如果媒体方的请求需要对省进行匹配,即不传递城市信息,地域 Feature 的匹配过程应该怎么去实现 ?
答: 在过滤的时候,修改UnitDistrictIndex.match(), 从province-city的匹配方式改为province匹配,代码如下
public boolean match(Long unitId, List<DistrictFeature.ProvinceAndCity> districts) {
if (unitId == null) {
return false;
}
if (unitDistrictMap.containsKey(unitId) && CollectionUtils.isNotEmpty(unitDistrictMap.get(unitId))) {
// province-city
Set<String> unitDistricts = unitDistrictMap.get(unitId);
List<String> provinceList = Collections.emptyList();
// 填充provinceList,只包含province
unitDistricts.forEach(u -> provinceList.add(
Splitter.on("-").omitEmptyStrings().trimResults().splitToList(u).get(0)
));
List<String> targetProvinces = districts.stream().map(
DistrictFeature.ProvinceAndCity::getProvince
).collect(Collectors.toList());
return CollectionUtils.isSubCollection(targetProvinces, provinceList);
}
return false;
}
作业4:当前的实现,所有广告位(AdSlot)的 Feature 是一样的,你能把它扩展到每个广告位有不同的 Feature 吗?
答: 没太读懂题目…
作业5:你还能对当前的广告检索服务做哪些扩展 ?
答: 可以引入缓存,将检索结果存入缓存中, 媒体方的请求作为key;另外就是可以把binlog的监听转移到新增的ad-binlog-kafka模块,让ad-search进行监听相应的topic,然后构建增量索引。
1回答
-
同学你好:
非常感谢你的回答,给出的答案或解决方案非常好。下面我针对你的答案做出一些解释。
作业1:推广计划和推广的状态怎么修改呢 ?应该由谁去做修改呢 ?
这个功能是由计费系统来完成的。广告在投放的过程中,需要计费系统来负责扣费,当扣到没钱的时候,推广单元或推广计划就需要下线了。此时,由计费系统修改数据记录的状态(直接修改 MySQL 中的记录,因为 Binlog 会持续监听)。同时,时间过期的修改也是由计费系统来负责的,可以采用简单的定时线程去处理(与你提出的答案是类似的)。
作业2:为什么匹配过程没有校验推广计划的开始和结束时间呢 ?
因为开始和结束时间其实是标志推广计划或推广单元是否有效的,这个是由计费系统来完成的。
作业3:如果媒体方的请求需要对省进行匹配,即不传递城市信息,地域 Feature 的匹配过程应该怎么去实现 ?
对的,你给出的实现方式是没问题的。直接验证省是否相等就可以了。
作业4:当前的实现,所有广告位(AdSlot)的 Feature 是一样的,你能把它扩展到每个广告位有不同的 Feature 吗?
Feature 就是广告位需要比对的条件,目前的设计是广告位都有媒体、地域等等信息。我的意思是将不同类型的广告位设置不同的匹配条件,比较简单的做法是广告位也要加上一个 FeatureType 标记它有哪些 Feature(对应的信息在代码中管理)。
作业5:你还能对当前的广告检索服务做哪些扩展 ?
你给出的答案非常好。另外,也可以考虑将索引对象存储到 Redis 中。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
112019-02-26
相似问题