1
CREATE EXTENSION dict_xsyn;
2
-- default configuration - match first word and return it among with all synonyms
3
ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=true, MATCHORIG=true, KEEPSYNONYMS=true, MATCHSYNONYMS=false);
5
SELECT ts_lexize('xsyn', 'supernova');
7
--------------------------
8
{supernova,sn,sne,1987a}
11
SELECT ts_lexize('xsyn', 'sn');
17
SELECT ts_lexize('xsyn', 'grb');
23
-- the same, but return only synonyms
24
ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=false, MATCHORIG=true, KEEPSYNONYMS=true, MATCHSYNONYMS=false);
25
SELECT ts_lexize('xsyn', 'supernova');
31
SELECT ts_lexize('xsyn', 'sn');
37
SELECT ts_lexize('xsyn', 'grb');
43
-- match any word and return all words
44
ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=true, MATCHORIG=true, KEEPSYNONYMS=true, MATCHSYNONYMS=true);
45
SELECT ts_lexize('xsyn', 'supernova');
47
--------------------------
48
{supernova,sn,sne,1987a}
51
SELECT ts_lexize('xsyn', 'sn');
53
--------------------------
54
{supernova,sn,sne,1987a}
57
SELECT ts_lexize('xsyn', 'grb');
63
-- match any word and return all words except first one
64
ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=false, MATCHORIG=true, KEEPSYNONYMS=true, MATCHSYNONYMS=true);
65
SELECT ts_lexize('xsyn', 'supernova');
71
SELECT ts_lexize('xsyn', 'sn');
77
SELECT ts_lexize('xsyn', 'grb');
83
-- match any synonym but not first word, and return first word instead
84
ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=true, MATCHORIG=false, KEEPSYNONYMS=false, MATCHSYNONYMS=true);
85
SELECT ts_lexize('xsyn', 'supernova');
91
SELECT ts_lexize('xsyn', 'sn');
97
SELECT ts_lexize('xsyn', 'grb');
103
-- do not match or return anything
104
ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=false, MATCHORIG=false, KEEPSYNONYMS=false, MATCHSYNONYMS=false);
105
SELECT ts_lexize('xsyn', 'supernova');
111
SELECT ts_lexize('xsyn', 'sn');
117
SELECT ts_lexize('xsyn', 'grb');
123
-- match any word but return nothing
124
ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=false, MATCHORIG=true, KEEPSYNONYMS=false, MATCHSYNONYMS=true);
125
SELECT ts_lexize('xsyn', 'supernova');
131
SELECT ts_lexize('xsyn', 'sn');
137
SELECT ts_lexize('xsyn', 'grb');