diff options
author | unknown <COOL@.(none)> | 2010-02-02 20:25:25 +0000 |
---|---|---|
committer | unknown <COOL@.(none)> | 2010-02-02 20:25:25 +0000 |
commit | 23245d01db7eeee3243d8eaf33129b50b44dcdb0 (patch) | |
tree | ffd8b276aeec0bddfab9711d717147a4f55a7ef9 /forum | |
parent | 7938b2e38456c3a1d81f5aa127b188e90849cc15 (diff) | |
download | askbot-23245d01db7eeee3243d8eaf33129b50b44dcdb0.tar.gz askbot-23245d01db7eeee3243d8eaf33129b50b44dcdb0.tar.bz2 askbot-23245d01db7eeee3243d8eaf33129b50b44dcdb0.zip |
added full text search support for postgresql, database setup is done as a response to the post_syncdb signal. search is done against question summary, title and tags with crescent weight respectively. everything works but is still in a early stage of development
Diffstat (limited to 'forum')
-rw-r--r-- | forum/views.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/forum/views.py b/forum/views.py index 5a5462e2..4d214bad 100644 --- a/forum/views.py +++ b/forum/views.py @@ -2350,8 +2350,18 @@ def search(request): except KeyError: view_id = "latest" orderby = "-added_at" - - if settings.USE_SPHINX_SEARCH == True: + + if settings.USE_PG_FTS: + objects = Question.objects.filter(deleted=False).extra( + select={ + 'ranking': "ts_rank_cd(tsv, plainto_tsquery(%s), 32)", + }, + where=["tsv @@ plainto_tsquery(%s)"], + params=[keywords], + select_params=[keywords] + ).order_by('-ranking') + + elif settings.USE_SPHINX_SEARCH == True: #search index is now free of delete questions and answers #so there is not "antideleted" filtering here objects = Question.search.query(keywords) |