作者:mobiledu2502887287 | 来源:互联网 | 2023-02-09 13:23
Firebase最近发布了与Cloud Functions的集成,允许我们上传Javascript函数,无需我们自己的服务器即可运行.
是否可以使用这些功能构建搜索引擎?我的想法是使用本地磁盘(tmpfs卷)将索引数据保存在内存中,对于每个写入事件,我将索引新数据.tmpfs是否在函数调用(实例)之间保存数据?
云功能可以用于此目的,还是应该使用专用服务器来索引数据?
与此相关的另一个问题是:当云功能从Firebase实时数据库获取数据时,它是消耗网络还是只读取磁盘?如何在计算中计算?
谢谢
1> Frank van Pu..:
你当然可以试试.云功能具有本地文件系统,通常用于在运行期间维护状态.有关详细信息,请参阅此答案:从Google Cloud Function写入临时文件
但是(据我所知)并没有保证在你的函数运行之间保持状态.或者甚至下次该功能将在同一个容器上运行.您可能下次在新创建的容器上运行.或者当调用中出现峰值时,您的函数可能会同时在多个容器上运行.因此,您可能需要为每次运行的函数重建搜索索引.
我想在这个例子中集成一个外部专用搜索引擎,例如Algolia:https://github.com/firebase/functions-samples/tree/master/fulltext-search.看看代码:即使有评论和许可证,它只有55行!
或者,您可以找到持久性存储服务(Firebase数据库和Firebase存储是两个示例),并使用它来保留搜索索引.因此,您将运行代码以更新Cloud Functions中的搜索索引,但会将生成的索引文件存储在更持久的位置.
那么.. 1)怎样没有保证维持状态我可以尝试运行一个永远不会结束的无限功能(这种方式我不需要tmpfs,可能是一个数组),2)我不喜欢这个想法将第三方搜索引擎添加到我的项目(如Algolia或Elasticsearch),3)将索引数据保存在数据库或存储中会产生巨大的网络占用空间.我在(1)和我自己的服务器之间