mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Add matchorig, matchsynonyms, and keepsynonyms options to contrib/dict_xsyn.
Sergey Karpov
This commit is contained in:
@ -8,9 +8,46 @@ SET client_min_messages = warning;
|
||||
\set ECHO all
|
||||
RESET client_min_messages;
|
||||
|
||||
--configuration
|
||||
ALTER TEXT SEARCH DICTIONARY xsyn (RULES='xsyn_sample', KEEPORIG=false);
|
||||
-- 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');
|
||||
|
Reference in New Issue
Block a user