summary refs log tree commit diff
path: root/synapse/storage/search.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2015-10-13 13:47:50 +0100
committerErik Johnston <erik@matrix.org>2015-10-13 13:47:50 +0100
commitcfd39d6b55fad5b176f1883e1bc87ed8e14acf42 (patch)
treec50208fd8139254d84b35d756569c8e05af3391c /synapse/storage/search.py
parentMerge branch 'erikj/store_engine' into erikj/search (diff)
downloadsynapse-cfd39d6b55fad5b176f1883e1bc87ed8e14acf42.tar.xz
Add SQLite support
Diffstat (limited to 'synapse/storage/search.py')
-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