diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-04-24 21:40:09 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-04-24 21:40:09 -0400 |
commit | 1eadbe31fc08f32f3fc082f9f4474951e9f68abd (patch) | |
tree | a2214f93eaa3b22b242aef873acd9ce2b4233e72 /forum/models | |
parent | 3b8821b7e6c00a34fe71b22f011841786bb9d7e5 (diff) | |
download | askbot-1eadbe31fc08f32f3fc082f9f4474951e9f68abd.tar.gz askbot-1eadbe31fc08f32f3fc082f9f4474951e9f68abd.tar.bz2 askbot-1eadbe31fc08f32f3fc082f9f4474951e9f68abd.zip |
first pass on mysql full text and relaxed search stickiness
Diffstat (limited to 'forum/models')
-rwxr-xr-x | forum/models/question.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/forum/models/question.py b/forum/models/question.py index fa1dd257..7b70f538 100755 --- a/forum/models/question.py +++ b/forum/models/question.py @@ -82,10 +82,18 @@ class QuestionManager(models.Manager): qs = qs.filter(tags__name = tag) if search_query: - qs = qs.filter(deleted=False).extra( - where=['title like %s'], - params=['%' + search_query + '%'] - ) + try: + qs = qs.filter( Q(title__search = search_query) \ + | Q(text__search = search_query) \ + | Q(tagnames__search = search_query) \ + | Q(answers__text__search = search_query) + ) + except: + #fallback to dumb title match search + qs = qs.extra( + where=['title like %s'], + params=['%' + search_query + '%'] + ) if scope_selector: if scope_selector == 'unanswered': |