我需要检查是否存在某些单词(或单词前缀),最好的方法是构建一个 Trie,但这在 GAE 上并不容易,它应该留在内存中(或者我每次查找时都必须构建它一些字符串),我不知道如何在 GAE 上实现它。
理想的结果是,在应用程序启动时构建一个 Trie,并在应用程序运行时保留它。
我尝试将所有单词和前缀存储在大表中,但性能不佳。
我需要检查是否存在某些单词(或单词前缀),最好的方法是构建一个 Trie,但这在 GAE 上并不容易,它应该留在内存中(或者我每次查找时都必须构建它一些字符串),我不知道如何在 GAE 上实现它。
理想的结果是,在应用程序启动时构建一个 Trie,并在应用程序运行时保留它。
我尝试将所有单词和前缀存储在大表中,但性能不佳。
您可能会考虑使用后端来保存数据。
后端是特殊的 App Engine 实例,它们没有请求期限、更高的内存和 CPU 限制以及跨请求的持久状态。它们由 App Engine 自动启动,可以长时间连续运行。每个后端实例都有一个用于请求的唯一 URL,您可以跨多个实例对请求进行负载平衡。
后端可以处理来自用户或应用程序其他部分的 HTTP 请求,在后台连续启动和运行,或者由任务队列任务或 Cron 作业驱动。 https://developers.google.com/appengine/docs/python/backends/
您可以使用实例内存来保存 trie 并使用 Python 对象构建它。
请参阅这篇文章: http: //blog.notdot.net/2010/11/Storage-options-on-App-Engine以及存储 trie 的其他选项。