1. 插件fuzzystrmatch简介
fuzzystrmatch提供了两个字符串之间的编辑距离的相关函数,即由一个转换成另一个所需的最少编辑操作次数。
-
插件名为fuzzystrmatch
-
插件版本 V1.0
2. 插件fuzzystrmatch加载方式
使用时需要create extension fuzzystrmatch。
示例:
create extension fuzzystrmatch;
3. 插件fuzzystrmatch参数配置
无需配置任何参数
4. 插件fuzzystrmatch使用方法
4.1. levenshtein
计算两个字符串之间编辑距离。
语法
levenshtein(t1 text, t2 text ) RETURNS int;
参数
t1
源字符串。
t2
目标字符串。
示例
TEST=# select levenshtein('text','tst'); levenshtein ------------- 2 (1 行记录) TEST=# select levenshtein('text','test'); levenshtein ------------- 1 (1 行记录) TEST=# select levenshtein('text','text'); levenshtein ------------- 0 (1 行记录)
4.2. levenshtein_with_costs
计算两个字符串之间的编辑距离。
语法
levenshtein_with_costs(t1 text, t2 text, i1 int, i2 int, i3 int) RETURNS int;
参数
t1
源字符串。
t2
目标字符串。
i1
insert的代价权重。
i2
replace的代价权重。
i3
delete的代价权重。
示例
TEST=# select levenshtein('tet','text', 1 ,2 ,3); levenshtein ------------- 1 (1 行记录) TEST=# select levenshtein('tet','text', 2 ,2 ,3); levenshtein ------------- 2 (1 行记录) TEST=# select levenshtein('tet','text', 2 ,2 ,3); levenshtein ------------- 2 (1 行记录)
4.3. levenshtein_less_equal
求字符之间编码距离与大于指定的值的最小整数值之间的最小值。
语法
levenshtein_less_equal(t1 text, t2 text, i int) RETURNS int;
参数
t1
源字符串。
t2
目标字符串。
i
参与比较的值。
示例
SELECT levenshtein_less_equal('extensive', 'exhaustive', 2); levenshtein_less_equal ------------------------ 3 (1 row) SELECT levenshtein_less_equal('extensive', 'exhaustive', 4); levenshtein_less_equal ------------------------ 4 (1 row)
4.4. levenshtein_less_equal_with_costs
与上述函数相似,增加如levenshtein_with_costs一样的代价花销。
4.5. metaphone
计算字符串的metaphone键。
语法
metaphone(text, int) returns text。
语法
text
参与计算的字符串。
int
参与运算的参考键值。
示例
SELECT metaphone('GUMBO', 4); metaphone ----------- KM (1 row)
4.6. soundex, text_soundex
生成字符串的soundex键。
语法
soundex(text) rerturns text。
参数
text
参与计算的字符串。
示例
TEST=# select soundex('A500'); soundex --------- A000 (1 行记录) TEST=# select soundex('A529sd800'); soundex --------- A230 (1 行记录) TEST=# select soundex('A529sds800'); soundex --------- A232 (1 行记录) TEST=# select soundex('hello world'); soundex --------- H464 (1 行记录)
4.7. difference
获得两个对比的字符串转换为soundex值后匹配的位数。
语法
difference(t1 text, t2 text) RETURNS int;
参数
t1
参与计算的字符串1。
t2
参与计算的字符串2。
示例
TEST=# select difference('ab', 'as'); difference ------------ 3 (1 行记录) TEST=# select difference('ab', 'ab'); difference ------------ 4 (1 行记录)
4.8. dmetaphone
获取text的dmetaphone。
语法
dmetaphone(text) returns text。
参数
text
参与计算的text字符串。
示例
TEST=# select dmetaphone('tetx'); dmetaphone ------------ TTKS (1 行记录)
5. 插件fuzzystrmatch卸载方法
不需要fuzzystrmatch插件只需要卸载插件即可。
示例
drop extension fuzzystrmatch;
6. 插件fuzzystrmatch升级方法
fuzzystrmatch扩展插件通常随KingbaseES安装包一并升级。通常情况下用户无法单独升级插件。