gms_match使用
创建Extension
创建gms_match extension可直接使用create extension命令进行创建:
create extension gms_match;
使用Extension
gms_match.edit_distance
gms_match.edit_distance(s1 in varchar2, s2 in varchar2) returns integer
描述:此函数返回两个字符串之间的编辑距离,即计算从s1到s2所需要的最少变化数,一次变化指一次插入、删除或替换操作。
参数说明:
s1
: 第一个varchar2类型入参,源字符串s2
: 第一个varchar2类型入参,目标字符串
返回值:integer数据类型,两个字符串之间的编辑距离
示例:
select gms_match.edit_distance(NULL, 'ff'); edit_distance --------------- -1 (1 row) select gms_match.edit_distance('', ''); edit_distance --------------- -1 (1 row) select gms_match.edit_distance('', 'ab'); edit_distance --------------- -1 (1 row) select gms_match.edit_distance('ab', 'ab'); edit_distance --------------- 0 (1 row) select gms_match.edit_distance('00', 'ff'); edit_distance --------------- 2 (1 row) select gms_match.edit_distance('ssttten', 'sitting'); edit_distance --------------- 4 (1 row)
gms_match.edit_distance_similarity
gms_match.edit_distance_similarity(s1 in varchar2, s2 in varchar2) returns integer
描述:此函数返回两个字符串的相似度,即编辑距离的标准化值(0~100),数值越大代表相似度越高。标准化值的计算公式:(1 - 编辑距离 / 两个入参长度的最大值) * 100。
参数说明:
s1
: 第一个varchar2类型入参,源字符串s2
: 第一个varchar2类型入参,目标字符串
返回值:integer数据类型,两个字符串之间的相似度
示例:
select gms_match.edit_distance_similarity(NULL, 'ff'); edit_distance_similarity -------------------------- 0 (1 row) select gms_match.edit_distance_similarity('', ''); edit_distance_similarity -------------------------- 100 (1 row) select gms_match.edit_distance_similarity('', 'ab'); edit_distance_similarity -------------------------- 0 (1 row) select gms_match.edit_distance_similarity('ab', 'ab'); edit_distance_similarity -------------------------- 100 (1 row) select gms_match.edit_distance_similarity('00', 'ff'); edit_distance_similarity -------------------------- 0 (1 row) select gms_match.edit_distance_similarity('ssttten', 'sitting'); edit_distance_similarity -------------------------- 43 (1 row)
删除Extension
在openGauss中删除gms_match extension的方法如下所示:
drop extension gms_match [cascade];
说明:
如果extension被其它对象依赖,需要加入cascade(级联)关键字,删除所有依赖对象。
意见反馈