annotate gpp/forums/search_indexes.py @ 387:b15726767ab8

Fixing #191; terrible performance on the combined forums RSS feed query. Use an .extra() clause to force the WHERE on a query to use the primary key.
author Brian Neal <bgneal@gmail.com>
date Sat, 19 Mar 2011 01:52:41 +0000
parents d424b8bae71d
children 79240675b903
rev   line source
bgneal@222 1 """Haystack search index for the weblinks application."""
bgneal@222 2 from haystack.indexes import *
bgneal@222 3 from haystack import site
bgneal@222 4
bgneal@222 5 from forums.models import Forum, Post
bgneal@222 6
bgneal@222 7
bgneal@222 8 class PostIndex(SearchIndex):
bgneal@222 9 text = CharField(document=True, use_template=True)
bgneal@222 10 author = CharField(model_attr='user')
bgneal@222 11 pub_date = DateTimeField(model_attr='creation_date')
bgneal@222 12
bgneal@222 13 def get_queryset(self):
bgneal@222 14 return Post.objects.filter(
bgneal@222 15 topic__forum__in=Forum.objects.public_forums())
bgneal@222 16
bgneal@277 17 def get_updated_field(self):
bgneal@277 18 return 'update_date'
bgneal@277 19
bgneal@222 20
bgneal@222 21 site.register(Post, PostIndex)