0

我正在尝试优化我的同事 django haystack 搜索功能,有一个 queryset.load_all() 可以加载 200 个模型实例,现在,鉴于我无法缓存 load_all() 的结果,有没有办法缓存这些单独的模型实例所以load_all() 将从 memcache 中读取以获取那些模型实例?

代码看起来像这样

result_set = query_set.load_all()[:self.max_results]
4

1 回答 1

0

我分两步解决了它:

  1. 为缓存结果的模型创建缓存管理器。
  2. 在您的 SearchIndex 中覆盖 index_queryset 以便您可以将管理器设置为使用:
def index_queryset(self):
    self.get_model().my_super_cache_manager.all()
于 2012-11-05T06:57:09.887 回答