Skip to content
Snippets Groups Projects
Commit 671ac699 authored by Erik Johnston's avatar Erik Johnston
Browse files

Actually filter results

parent 2980136d
No related branches found
No related tags found
No related merge requests found
......@@ -48,7 +48,7 @@ class SearchStore(SQLBaseStore):
args = []
# Make sure we don't explode because the person is in too many rooms.
# We filter the results regardless.
# We filter the results below regardless.
if len(room_ids) < 500:
clauses.append(
"room_id IN (%s)" % (",".join(["?"] * len(room_ids)),)
......@@ -66,13 +66,13 @@ class SearchStore(SQLBaseStore):
if isinstance(self.database_engine, PostgresEngine):
sql = (
"SELECT ts_rank_cd(vector, query) AS rank, event_id"
"SELECT ts_rank_cd(vector, query) AS rank, room_id, event_id"
" FROM plainto_tsquery('english', ?) as query, event_search"
" WHERE vector @@ query"
)
elif isinstance(self.database_engine, Sqlite3Engine):
sql = (
"SELECT 0 as rank, event_id FROM event_search"
"SELECT 0 as rank, room_id, event_id FROM event_search"
" WHERE value MATCH ?"
)
else:
......@@ -90,6 +90,8 @@ class SearchStore(SQLBaseStore):
"search_msgs", self.cursor_to_dict, sql, *([search_term] + args)
)
results = filter(lambda row: row["room_id"] in room_ids, results)
events = yield self._get_events([r["event_id"] for r in results])
event_map = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment