Sto scrivendo un plugin che memorizza alcuni dati aggiuntivi per ogni utente (simile a discourse-user-notes, ma non riservato solo allo staff) e vorrei poter cercare in base a questi.
Presumibilmente ciò richiede di apportare delle modifiche a qualcosa in lib/search.rb. So che il plugin di ricerca Algolia sovrascrive ciò che appare nel popup della casella di ricerca, ma idealmente vorrei che questo influisse anche sulla pagina dei risultati effettivi.
Puoi estendere la ricerca dal tuo plugin; ad esempio, puoi aggiungere un filtro avanzato come questo:
require_dependency 'search'
if Search.respond_to? :advanced_filter
Search.advanced_filter(/with:video/) do |posts|
posts.where("posts.cooked LIKE '%<video %'")
end
end
Quanto sopra mostrerà solo i post che contengono video quando la casella di ricerca include la parola chiave with:video. Consulta anche il filtro avanzato per i badge per un esempio di query di ricerca che tiene conto dei dati dell’utente.
A questo proposito, PluginStore scalerà bene in questo contesto? Immagino che ciò porterà a molti scansioni complete (in assenza di un indice compatibile con LIKE sulle chiavi), quindi sarebbe meglio creare una tabella 1-a-1 per i dati utente aggiuntivi?