我们有两个站点,一个用 RoR 开发,另一个用 Python(Django)开发。MongoDB 用作站点的数据存储。这些站点是基于登录的。因此,用户只能看到他们的数据,而不能看到其他用户的数据。此外,MongoDB中有许多模型,这些模型之间是相互关联的。
我们必须开发一种类似于 Gmail 搜索的搜索功能。在 Gmail 搜索框中,有许多字段,如、 、label:
等to:
用于过滤目的。如果没有选择这些字段,则进行正常搜索。令人惊讶的是,对于任何搜索查询,以 256 kbps 的带宽速度在不到 1 秒的时间内获取 Gmail 搜索结果。from:
attachment:
通过在所有模型中调用多个查询来搜索关键字是不可行的。对于爬取数据库数据的解决方案,谷歌搜索进行了查找。
在“搜索引擎”上进行谷歌搜索时,有一个结果提到了抓取和索引网页。可用的工具是 Lucene Solr+Nutch 和 Sphinx。但它适用于抓取网页并使用 Nutch 将关键字存储到数据库中,并使用 Solr 索引关键字并搜索它们。
在“数据库搜索引擎”上搜索并没有提供任何具体结果。
在此链接中,在第二点中,有人指出MongoDB 等似乎服务于不需要搜索和/或分面的目的。那么,是不是意味着在 MongoDB 上爬取和索引是不可行的呢?
一般来说,有没有像在数据库上爬行和索引的东西,不管数据库工具(MySQL、SQLite、PostgreSQL、MongoDB 等)是什么?
更新:
我们开发的网站与 Gmail 非常相似,只是它与邮件服务无关。我们只需要开发一个搜索功能。因此,Gmail 用户可以看到他们的邮件,而不是其他人的邮件。同样,我们网站上的内容是特定于用户的。希望它能澄清问题。