mirror of https://github.com/postgres/postgres
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
2.0 KiB
45 lines
2.0 KiB
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');
|
|
|