--- id: textsearch title: '.textSearch()' slug: textsearch custom_edit_url: https://github.com/supabase/supabase/edit/master/spec/supabase_js_v1_legacy.yml --- import Tabs from '@theme/Tabs' import TabItem from '@theme/TabItem' Finds all rows whose tsvector value on the stated `column` matches to_tsquery(`query`). ## Parameters ## Examples ### Text search ```js const { data, error } = await supabase .from('quotes') .select('catchphrase') .textSearch('catchphrase', `'fat' & 'cat'`, { config: 'english', }) ``` ### Basic normalization Uses PostgreSQL's `plainto_tsquery` function. ```js const { data, error } = await supabase .from('quotes') .select('catchphrase') .textSearch('catchphrase', `'fat' & 'cat'`, { type: 'plain', config: 'english', }) ``` ### Full normalization Uses PostgreSQL's `phraseto_tsquery` function. ```js const { data, error } = await supabase .from('quotes') .select('catchphrase') .textSearch('catchphrase', `'fat' & 'cat'`, { type: 'phrase', config: 'english', }) ``` ### Websearch Uses PostgreSQL's `websearch_to_tsquery` function. This function will never raise syntax errors, which makes it possible to use raw user-supplied input for search, and can be used with advanced operators. - `unquoted text`: text not inside quote marks will be converted to terms separated by & operators, as if processed by plainto_tsquery. - `"quoted text"`: text inside quote marks will be converted to terms separated by <-> operators, as if processed by phraseto_tsquery. - `OR`: the word “or” will be converted to the | operator. - `-`: a dash will be converted to the ! operator. ```js const { data, error } = await supabase .from('quotes') .select('catchphrase') .textSearch('catchphrase', `'fat or cat'`, { type: 'websearch', config: 'english', }) ```