Postgresql 如何在Postgres pg_trgm模块中计算相似度
有人能给我解释一下在Postgres pg_trgm模块中相似性函数是如何计算的吗 e、 g.Postgresql 如何在Postgres pg_trgm模块中计算相似度,postgresql,pg-trgm,Postgresql,Pg Trgm,有人能给我解释一下在Postgres pg_trgm模块中相似性函数是如何计算的吗 e、 g.相似性('sage','message')=0.3 1) " s"," sa",age,"ge ",sag 2) " m"," me",age,ess,"ge ",mes,sag,ssa n1: cardinality(1) = 5 n2: cardinality(2) = 8 nt: cardinality(1 intersect 2) = 3 我看不出我们是如何从这三个量得到一个等于0.3的
相似性('sage','message')=0.3
1) " s"," sa",age,"ge ",sag
2) " m"," me",age,ess,"ge ",mes,sag,ssa
n1: cardinality(1) = 5
n2: cardinality(2) = 8
nt: cardinality(1 intersect 2) = 3
我看不出我们是如何从这三个量得到一个等于0.3的公式的。我希望它基于一个通用的字符串相似性度量(例如Dice Sorensen)
i、 e.2*nt/(n1+n2)=6/13=0.46
pg_-trgm相似性得分对我来说似乎异常低公式可在
contrib/pg_-trgm/trgm.h
中找到(参见宏CALCSML
),如下所示:
nt / (n1 + n2 - nt)
在您的情况下,这是3/(5+8-3)=0.3