summaryrefslogtreecommitdiffstats
path: root/forum
diff options
context:
space:
mode:
authorunknown <COOL@.(none)>2010-02-02 20:25:25 +0000
committerunknown <COOL@.(none)>2010-02-02 20:25:25 +0000
commit23245d01db7eeee3243d8eaf33129b50b44dcdb0 (patch)
treeffd8b276aeec0bddfab9711d717147a4f55a7ef9 /forum
parent7938b2e38456c3a1d81f5aa127b188e90849cc15 (diff)
downloadaskbot-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.py14
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)