Skip to content
Advertisement

Is there a way to perform full text search on multiple columns on Supabase with Javascript?

I’ve tried using many symbols to separate columns; ||, |, &&, & with and without spaces.

For instance

.textSearch("username, title, description", "...");
.textSearch("username|title|description", "...");

And nothing has worked 🙁

Advertisement

Answer

You could create a SQL function to perform search like this:

create or replace function search_posts(keyword text)
returns setof posts
as
$func$
select 
  * 
from 
  posts
where 
  to_tsvector(username || ' ' || title || ' ' || description) -- concat columns, but be sure to include a space to separate them!
  @@ to_tsquery(keyword);
$func$
language sql;

You can call this function like this:

const {data, error} = await supabase.rpc('search_posts', { keyword: '[YOUR_SEARCH_TERM_HERE]' })

You can read more about textSearch here

User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement