From 2e4d0b38dbc2edecd681b175384e38ccd1a0c07f Mon Sep 17 00:00:00 2001 From: Donal McBreen Date: Fri, 21 Nov 2025 11:42:07 +0000 Subject: [PATCH] Fix matching scope after merge --- app/models/search/record.rb | 4 ++-- app/models/search/record/sqlite.rb | 2 +- app/models/search/record/trilogy.rb | 6 ++++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/models/search/record.rb b/app/models/search/record.rb index dc53d3095..5f1f19bc2 100644 --- a/app/models/search/record.rb +++ b/app/models/search/record.rb @@ -23,8 +23,8 @@ class Search::Record < ApplicationRecord end end - scope :matching, ->(query) do - matching_scope(query) + scope :matching, ->(query, account_id) do + matching_scope(query, account_id) end scope :for_user, ->(user) do diff --git a/app/models/search/record/sqlite.rb b/app/models/search/record/sqlite.rb index 5566963e3..9517f9219 100644 --- a/app/models/search/record/sqlite.rb +++ b/app/models/search/record/sqlite.rb @@ -15,7 +15,7 @@ module Search::Record::SQLite self end - def matching_scope(query) + def matching_scope(query, account_id) joins("INNER JOIN search_records_fts ON search_records_fts.rowid = #{table_name}.id") .where("search_records_fts MATCH ?", query) end diff --git a/app/models/search/record/trilogy.rb b/app/models/search/record/trilogy.rb index e55c895cd..c4520b7f2 100644 --- a/app/models/search/record/trilogy.rb +++ b/app/models/search/record/trilogy.rb @@ -30,9 +30,11 @@ module Search::Record::Trilogy Zlib.crc32(account_id.to_s) % SHARD_COUNT end - def matching_scope(query) + def matching_scope(query, account_id) stemmed_query = Search::Stemmer.stem(query) - where("MATCH(#{table_name}.content, #{table_name}.title) AGAINST(? IN BOOLEAN MODE)", stemmed_query) + account_key = "account#{account_id}" + full_query = "+#{account_key} +(#{stemmed_query})" + where("MATCH(#{table_name}.account_key, #{table_name}.content, #{table_name}.title) AGAINST(? IN BOOLEAN MODE)", full_query) end def search_scope(relation, query)