mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
25bd9ce31b
Sergey Karpov
149 lines
3.1 KiB
Plaintext
149 lines
3.1 KiB
Plaintext
--
|
|
-- first, define the datatype. Turn off echoing so that expected file
|
|
-- does not depend on contents of this file.
|
|
--
|
|
SET client_min_messages = warning;
|
|
\set ECHO none
|
|
RESET client_min_messages;
|
|
-- 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');
|
|
ts_lexize
|
|
--------------------------
|
|
{supernova,sn,sne,1987a}
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'sn');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'grb');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|
|
-- 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');
|
|
ts_lexize
|
|
----------------
|
|
{sn,sne,1987a}
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'sn');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'grb');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|
|
-- 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');
|
|
ts_lexize
|
|
--------------------------
|
|
{supernova,sn,sne,1987a}
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'sn');
|
|
ts_lexize
|
|
--------------------------
|
|
{supernova,sn,sne,1987a}
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'grb');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|
|
-- 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');
|
|
ts_lexize
|
|
----------------
|
|
{sn,sne,1987a}
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'sn');
|
|
ts_lexize
|
|
----------------
|
|
{sn,sne,1987a}
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'grb');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|
|
-- 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');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'sn');
|
|
ts_lexize
|
|
-------------
|
|
{supernova}
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'grb');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|
|
-- 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');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'sn');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'grb');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|
|
-- 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');
|
|
ts_lexize
|
|
-----------
|
|
{}
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'sn');
|
|
ts_lexize
|
|
-----------
|
|
{}
|
|
(1 row)
|
|
|
|
SELECT ts_lexize('xsyn', 'grb');
|
|
ts_lexize
|
|
-----------
|
|
|
|
(1 row)
|
|
|