summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/storage/search.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/synapse/storage/search.py b/synapse/storage/search.py
index 238df38440..5843f80876 100644
--- a/synapse/storage/search.py
+++ b/synapse/storage/search.py
@@ -17,6 +17,7 @@ from twisted.internet import defer
 
 from _base import SQLBaseStore
 from synapse.api.constants import KnownRoomEventKeys, SearchConstraintTypes
+from synapse.storage.engines import PostgresEngine
 
 
 class SearchStore(SQLBaseStore):
@@ -48,11 +49,17 @@ class SearchStore(SQLBaseStore):
                 "(%s)" % (" OR ".join(local_clauses),)
             )
 
-        sql = (
-            "SELECT ts_rank_cd(vector, query) AS rank, event_id"
-            " FROM plainto_tsquery('english', ?) as query, event_search"
-            " WHERE vector @@ query"
-        )
+        if isinstance(self.database_engine, PostgresEngine):
+            sql = (
+                "SELECT ts_rank_cd(vector, query) AS rank, event_id"
+                " FROM plainto_tsquery('english', ?) as query, event_search"
+                " WHERE vector @@ query"
+            )
+        else:
+            sql = (
+                "SELECT 0 as rank, event_id FROM event_search"
+                " WHERE value MATCH ?"
+            )
 
         for clause in clauses:
             sql += " AND " + clause