mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-23 21:17:18 +02:00
strict_word_similarity is similar to existing word_similarity function but it takes into account word boundaries to compute similarity. Author: Alexander Korotkov Review by: David Steele, Liudmila Mantrova, me Discussion: https://www.postgresql.org/message-id/flat/CY4PR17MB13207ED8310F847CF117EED0D85A0@CY4PR17MB1320.namprd17.prod.outlook.com
69 lines
2.0 KiB
SQL
69 lines
2.0 KiB
SQL
/* contrib/pg_trgm/pg_trgm--1.3--1.4.sql */
|
|
|
|
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
|
|
\echo Use "ALTER EXTENSION pg_trgm UPDATE TO '1.4'" to load this file. \quit
|
|
|
|
CREATE FUNCTION strict_word_similarity(text,text)
|
|
RETURNS float4
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
|
|
|
|
CREATE FUNCTION strict_word_similarity_op(text,text)
|
|
RETURNS bool
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT STABLE PARALLEL SAFE; -- stable because depends on pg_trgm.word_similarity_threshold
|
|
|
|
CREATE FUNCTION strict_word_similarity_commutator_op(text,text)
|
|
RETURNS bool
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT STABLE PARALLEL SAFE; -- stable because depends on pg_trgm.word_similarity_threshold
|
|
|
|
CREATE OPERATOR <<% (
|
|
LEFTARG = text,
|
|
RIGHTARG = text,
|
|
PROCEDURE = strict_word_similarity_op,
|
|
COMMUTATOR = '%>>',
|
|
RESTRICT = contsel,
|
|
JOIN = contjoinsel
|
|
);
|
|
|
|
CREATE OPERATOR %>> (
|
|
LEFTARG = text,
|
|
RIGHTARG = text,
|
|
PROCEDURE = strict_word_similarity_commutator_op,
|
|
COMMUTATOR = '<<%',
|
|
RESTRICT = contsel,
|
|
JOIN = contjoinsel
|
|
);
|
|
|
|
CREATE FUNCTION strict_word_similarity_dist_op(text,text)
|
|
RETURNS float4
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
|
|
|
|
CREATE FUNCTION strict_word_similarity_dist_commutator_op(text,text)
|
|
RETURNS float4
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
|
|
|
|
CREATE OPERATOR <<<-> (
|
|
LEFTARG = text,
|
|
RIGHTARG = text,
|
|
PROCEDURE = strict_word_similarity_dist_op,
|
|
COMMUTATOR = '<->>>'
|
|
);
|
|
|
|
CREATE OPERATOR <->>> (
|
|
LEFTARG = text,
|
|
RIGHTARG = text,
|
|
PROCEDURE = strict_word_similarity_dist_commutator_op,
|
|
COMMUTATOR = '<<<->'
|
|
);
|
|
|
|
ALTER OPERATOR FAMILY gist_trgm_ops USING gist ADD
|
|
OPERATOR 9 %>> (text, text),
|
|
OPERATOR 10 <->>> (text, text) FOR ORDER BY pg_catalog.float_ops;
|
|
|
|
ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD
|
|
OPERATOR 9 %>> (text, text);
|