我正在构建与 Google Alerts 非常相似的东西。如果您不知道它是什么,请考虑以下场景,
- 每天都有数以千计的新文本文章、博客文章涌入
- 每个用户都有一个他想订阅的最喜欢的“关键字”列表
- 百万用户有百万关键词
- 我们扫描每篇文章/博客文章,寻找每一个关键词
- 如果特定关键字匹配,则通知每个用户。
对于一个关键字,对数千篇文章进行基本的全文搜索很容易,但是如何对百万个关键字进行有效的全文搜索呢?
由于我没有强大的 CS 后台,所以我想到的唯一想法是将所有关键字编译成regex
,或自动机,这行得通吗?(就像谷歌的re2)
我想我在这里做一些重要的事情。就像将这些关键字编译成一些高级数据结构一样。由于许多关键字是相似的(例如复数形式、简单的 AND、NOT 逻辑等)。在进行此之前,我需要了解任何先前的理论吗?
欢迎所有建议,在此先感谢!