Skip to main content
Version: v2 RC

textSearch()

Only relevant for text and tsvector columns. Match only rows where column matches the query string in query.

Parameters

  • columnrequiredColumnName

    The text or tsvector column to filter on

  • queryrequiredstring

    The query text to match with

  • optionsoptionalobject

    Named parameters

      Properties
    • configoptionalstring

      The text search configuration to use

    • typeoptionalplain | phrase | websearch

      Change how the query text is interpreted

Notes

For more information, see Postgres full text search.

Examples

const { data, error } = await supabase
.from('quotes')
.select('catchphrase')
.textSearch('catchphrase', `'fat' & 'cat'`, {
config: 'english'
})

Basic normalization

Uses PostgreSQL's plainto_tsquery function.

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.

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.
const { data, error } = await supabase
.from('quotes')
.select('catchphrase')
.textSearch('catchphrase', `'fat or cat'`, {
type: 'websearch',
config: 'english'
})