CREATE EXTENSION dict_xsyn; -- default configuration - match first word and return it among with all synonyms ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=true, MATCHORIG=true, KEEPSYNONYMS=true, MATCHSYNONYMS=false); --lexize SELECT ts_lexize('xsyn', 'supernova'); SELECT ts_lexize('xsyn', 'sn'); SELECT ts_lexize('xsyn', 'grb'); -- the same, but return only synonyms ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=false, MATCHORIG=true, KEEPSYNONYMS=true, MATCHSYNONYMS=false); SELECT ts_lexize('xsyn', 'supernova'); SELECT ts_lexize('xsyn', 'sn'); SELECT ts_lexize('xsyn', 'grb'); -- match any word and return all words ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=true, MATCHORIG=true, KEEPSYNONYMS=true, MATCHSYNONYMS=true); SELECT ts_lexize('xsyn', 'supernova'); SELECT ts_lexize('xsyn', 'sn'); SELECT ts_lexize('xsyn', 'grb'); -- match any word and return all words except first one ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=false, MATCHORIG=true, KEEPSYNONYMS=true, MATCHSYNONYMS=true); SELECT ts_lexize('xsyn', 'supernova'); SELECT ts_lexize('xsyn', 'sn'); SELECT ts_lexize('xsyn', 'grb'); -- match any synonym but not first word, and return first word instead ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=true, MATCHORIG=false, KEEPSYNONYMS=false, MATCHSYNONYMS=true); SELECT ts_lexize('xsyn', 'supernova'); SELECT ts_lexize('xsyn', 'sn'); SELECT ts_lexize('xsyn', 'grb'); -- do not match or return anything ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=false, MATCHORIG=false, KEEPSYNONYMS=false, MATCHSYNONYMS=false); SELECT ts_lexize('xsyn', 'supernova'); SELECT ts_lexize('xsyn', 'sn'); SELECT ts_lexize('xsyn', 'grb'); -- match any word but return nothing ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=false, MATCHORIG=true, KEEPSYNONYMS=false, MATCHSYNONYMS=true); SELECT ts_lexize('xsyn', 'supernova'); SELECT ts_lexize('xsyn', 'sn'); SELECT ts_lexize('xsyn', 'grb');