From 25dc6c4261c5e91f41a62411b82844463ecc3fec Mon Sep 17 00:00:00 2001 From: HeNine <> Date: Thu, 21 Oct 2021 16:33:47 +0200 Subject: [PATCH] Search speaker names --- buscribe-api/buscribeapi/buscribeapi.py | 4 ++-- buscribe_data.sql | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/buscribe-api/buscribeapi/buscribeapi.py b/buscribe-api/buscribeapi/buscribeapi.py index f832e29..14cd43a 100644 --- a/buscribe-api/buscribeapi/buscribeapi.py +++ b/buscribe-api/buscribeapi/buscribeapi.py @@ -102,9 +102,9 @@ def fetch_lines(db_conn, start_time, end_time, ts_query=None, limit=None, offset query = "SELECT * FROM buscribe_all_transcriptions WHERE start_time > %(start_time)s AND end_time < %(end_time)s " if ts_query is not None: - query += "AND transcription_line_ts @@ " \ + query += "AND (coalesce(transcription_line_ts, ''::tsvector) || coalesce(names_ts, ''::tsvector)) @@ " \ "(CASE WHEN websearch_to_tsquery(%(text_query)s)::text != '' THEN websearch_to_tsquery(%(text_query)s)::text || ':*' ELSE '' END)::tsquery " \ - "ORDER BY ts_rank_cd(transcription_line_ts, (CASE WHEN websearch_to_tsquery(%(text_query)s)::text != '' THEN websearch_to_tsquery(%(text_query)s)::text || ':*' ELSE '' END)::tsquery) DESC, " \ + "ORDER BY ts_rank_cd(coalesce(transcription_line_ts, ''::tsvector) || coalesce(names_ts, ''::tsvector), (CASE WHEN websearch_to_tsquery(%(text_query)s)::text != '' THEN websearch_to_tsquery(%(text_query)s)::text || ':*' ELSE '' END)::tsquery) DESC, " \ "start_time " else: query += "ORDER BY start_time " diff --git a/buscribe_data.sql b/buscribe_data.sql index f9fd943..497d273 100644 --- a/buscribe_data.sql +++ b/buscribe_data.sql @@ -86,7 +86,8 @@ SELECT buscribe_transcriptions.id, coalesce(buscribe_verified_lines.verifier, speakers.verifier) AS verifier, names, verified_line AS transcription_line, - setweight(to_tsvector('english', verified_line), 'C') AS transcription_line_ts + setweight(to_tsvector('english', verified_line), 'C') AS transcription_line_ts, + setweight(to_tsvector(array_to_string(names, ' ')), 'C') AS names_ts FROM buscribe_transcriptions LEFT OUTER JOIN buscribe_verified_lines ON buscribe_transcriptions.id = buscribe_verified_lines.line LEFT OUTER JOIN ( @@ -106,7 +107,8 @@ SELECT id, null AS verifier, null AS names, transcription_line, - to_tsvector('english', transcription_line) AS transcription_line_ts + to_tsvector('english', transcription_line) AS transcription_line_ts, + null AS names_ts FROM buscribe_transcriptions; ROLLBACK; \ No newline at end of file