0

我正在构建与 Google Alerts 非常相似的东西。如果您不知道它是什么,请考虑以下场景,

  1. 每天都有数以千计的新文本文章、博客文章涌入
  2. 每个用户都有一个他想订阅的最喜欢的“关键字”列表
  3. 百万用户有百万关键词
  4. 我们扫描每篇文章/博客文章,寻找每一个关键词
  5. 如果特定关键字匹配,则通知每个用户。

对于一个关键字,对数千篇文章进行基本的全文搜索很容易,但是如何对百万个关键字进行有效的全文搜索呢?

由于我没有强大的 CS 后台,所以我想到的唯一想法是将所有关键字编译成regex,或自动机,这行得通吗?(就像谷歌的re2

我想我在这里做一些重要的事情。就像将这些关键字编译成一些高级数据结构一样。由于许多关键字是相似的(例如复数形式、简单的 AND、NOT 逻辑等)。在进行此之前,我需要了解任何先前的理论吗?

欢迎所有建议,在此先感谢!

4

1 回答 1

0

我可以想到以下几点:(1)确保每个搜索查询都非常快。毫秒性能非常重要。(2) 对具有相同关键字的多个查询进行分组,并为每个组做一次查询。

由于不同的查询使用不同的关键字和 AND/OR 操作,我看不到其他方法来对它们进行分组。

于 2013-09-03T19:04:46.413 回答