]> git.openstreetmap.org Git - osqa.git/blobdiff - forum_modules/mysqlfulltext/startup.py
Resolves Jira OSQA-733, we encode the unicode data according to the ASCII XML Unicode...
[osqa.git] / forum_modules / mysqlfulltext / startup.py
index e2bc7efc91a6f36c34097a3036353b3c5f00cf9a..8c2af5fadb488a6e10e70cecce6142fa42e4d532 100644 (file)
@@ -8,7 +8,7 @@ from forum.models.question import Question, QuestionManager
 from forum.models.node import Node
 from forum.modules import decorate
 
-VERSION = 2
+VERSION = 4
 
 f_name = None
 
@@ -43,16 +43,16 @@ word_re = re.compile(r'\w+', re.UNICODE)
 def question_search(self, keywords):
     keywords = keywords.upper()
 
-    return '-ranking', self.filter(
-            models.Q(ftsindex__body__search=keywords) or models.Q(ftsindex__title__search=keywords) or models.Q(ftsindex__tagnames__search=keywords)
-
+    qs = self.filter(
+            models.Q(ftsindex__body__isnull=False)
     ).extra(
         select={
             'ranking': """
-                match(forum_mysqlftsindex.tagnames) against (%s in boolean mode) * 4 +
-                match(forum_mysqlftsindex.title) against (%s in boolean mode) * 2 +
-                match(forum_mysqlftsindex.body) against (%s in boolean mode) * 1
-                                """,
+                match(forum_mysqlftsindex.tagnames) against (%s) * 2 +
+                match(forum_mysqlftsindex.title) against (%s) * 4 +
+                match(forum_mysqlftsindex.body) against (%s) * 1
+                """,
             },
         select_params=[keywords, keywords, keywords]
-    )
+    ).filter(Q(ftsindex__title__search=keywords) | Q(ftsindex__tagnames__search=keywords) | Q(ftsindex__body__search=keywords))
+    return '-ranking', qs