CREATE FULLTEXT DICTIONARY

Name

CREATE FULLTEXT DICTIONARY -- create a dictionary for full-text search

Synopsis

CREATE FULLTEXT DICTIONARY dictname 
    LEXIZE  lexize_function
    [INIT  init_function ]
    [OPTION  opt_text ]
;
  
CREATE FULLTEXT DICTIONARY dictname 
[    {   INIT  init_function 
        | LEXIZE  lexize_function 
        | OPTION opt_text } 
[ ... ]] LIKE template_dictname;
  

Description

CREATE FULLTEXT DICTIONARY will create a new dictionary used to transform input word to a lexeme.

If a schema name is given (for example, CREATE FULLTEXT DICTIONARY myschema.dictname ...) then the dictionary is created in the specified schema. Otherwise it is created in the current schema.

Parameters

dictname

The name (optionally schema-qualified) of the new dictionary.

LEXIZE

lexize_function is the name of the function, which does transformation of input word.

INIT

init_function is the name of the function, which initialize dictionary.

OPTION

opt_text is the meaning of the opt_text varies among dictionaries. Usually, it stores various options required for the dictionary, for example, location of stop words file. Relative paths are defined with regard to PGROOT/share/dicts_data directory.

LIKE

template_dictname is the name (optionally schema-qualified) of existing full-text dictionary used as a template. Values of INIT, LEXIZE, OPTION parameters, if defined, will substitute default values of the template dictionary.

Examples

Create dictionary public.my_simple in public schema, which uses functions defined for system pg_catalog.simple dictionary. We specify location of stop-word file.

=# CREATE FULLTEXT DICTIONARY public.my_simple LEXIZE  dsimple_lexize  INIT dsimple_init  OPTION  '/usr/local/share/dicts/english.stop';
=# select lexize('public.my_simple','YeS');
 lexize
--------
 {yes}
=# select lexize('public.my_simple','The');
 lexize
--------
 {}

This could be done easier using template.

=# CREATE FULLTEXT DICTIONARY public.my_simple  OPTION '/usr/local/share/dicts/english.stop' LIKE pg_catalog.simple;
=# select lexize('public.my_simple','YeS');
 lexize
--------
 {yes}
=# select lexize('public.my_simple','The');
 lexize
--------
 {}

See Also

DROP FULLTEXT DICTIONARY, ALTER FULLTEXT DICTIONARY