Uni Ecto Plugin
defp full_text_match(query, search_term, fields) do dynamic = Enum.map(fields, fn field -> dynamic([q], fragment("to_tsvector(?, ?)", unquote(@search_language), field(q, ^field))) end)
# Optional: Add precomputed tsvector column alter table(:posts) do add :search_vector, :tsvector end uni ecto plugin
end