求助|Java面试,一个开放题,大家讨论下答案
1315
2024.12.31
2024.12.31
发布于 浙江

楼主面试了一家公司,Java岗位,有个开放题想不到较为完善的方案,大家来讨论下思路或者解决办法。

题目:给你1000万个不重复商品数据,1000万个不重复违禁词,如何【快速】统计出每个商品的所有违禁词?

  1. 1000万不重复商品数据,每个商品有N个字段、比如:名称、seo、标签、属性,等等,每个字段都有符合商品量级长度的句子或词语。
  2. 1000万不重复敏感词
  3. 商品数据已经做过各种筛选,已经是最小范围了(所以站点、状态、语言的细化都不行。)
  4. 不能用太过的分布式去做这件事,比如1000台机器什么的,就单台机器。
  5. 不能有误差(所以布隆过滤器之类的只能当辅助用,无法作为主要解决方案)。
  6. 【资源】【时间】都要相对足够优秀,尤其是【时间】
  7. 算法、Java的解决方式都可以

目标:精准匹配出每个商品的所有违禁词。

该怎么解决?有没有老哥有思路?

面试的过程突然被问到,仔细一想,竟然想不出比较好的解决方案。
我个人想到了:布隆过滤器加一层,过滤一部分,类似倒排索引的方式单独处理

各种业务上的规避,都被堵死了,也不允许有误差,更不允许加机器。

让我到现在都抓耳挠腮,百思不得其解,哈哈。

评论 (12)