diff options
author | Teodor Sigaev | 2018-03-21 11:57:42 +0000 |
---|---|---|
committer | Teodor Sigaev | 2018-03-21 11:57:42 +0000 |
commit | be8a7a6866276b228b4ffaa3003e1dc2dd1d140a (patch) | |
tree | 6ff95878418ee689723728dca29de6de337ef200 /contrib/pg_trgm/trgm.h | |
parent | f20b3285340cc0576ab8445f483700983cf2ba9f (diff) |
Add strict_word_similarity to pg_trgm module
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
Diffstat (limited to 'contrib/pg_trgm/trgm.h')
-rw-r--r-- | contrib/pg_trgm/trgm.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/contrib/pg_trgm/trgm.h b/contrib/pg_trgm/trgm.h index 45df91875ab..f0ab50dd05c 100644 --- a/contrib/pg_trgm/trgm.h +++ b/contrib/pg_trgm/trgm.h @@ -6,6 +6,7 @@ #include "access/gist.h" #include "access/itup.h" +#include "access/stratnum.h" #include "storage/bufpage.h" /* @@ -26,14 +27,16 @@ #define DIVUNION /* operator strategy numbers */ -#define SimilarityStrategyNumber 1 -#define DistanceStrategyNumber 2 -#define LikeStrategyNumber 3 -#define ILikeStrategyNumber 4 -#define RegExpStrategyNumber 5 -#define RegExpICaseStrategyNumber 6 -#define WordSimilarityStrategyNumber 7 -#define WordDistanceStrategyNumber 8 +#define SimilarityStrategyNumber 1 +#define DistanceStrategyNumber 2 +#define LikeStrategyNumber 3 +#define ILikeStrategyNumber 4 +#define RegExpStrategyNumber 5 +#define RegExpICaseStrategyNumber 6 +#define WordSimilarityStrategyNumber 7 +#define WordDistanceStrategyNumber 8 +#define StrictWordSimilarityStrategyNumber 9 +#define StrictWordDistanceStrategyNumber 10 typedef char trgm[3]; @@ -120,7 +123,9 @@ typedef struct TrgmPackedGraph TrgmPackedGraph; extern double similarity_threshold; extern double word_similarity_threshold; +extern double strict_word_similarity_threshold; +extern double index_strategy_get_limit(StrategyNumber strategy); extern uint32 trgm2int(trgm *ptr); extern void compact_trigram(trgm *tptr, char *str, int bytelen); extern TRGM *generate_trgm(char *str, int slen); |