加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

矫正错误的查询条件,PostgreSQL的黑科技

发布时间:2020-12-13 18:17:07 所属栏目:百科 来源:网络整理
导读:《矫正错误的查询条件,PostgreSQL的黑科技》要点: 本文介绍了矫正错误的查询条件,PostgreSQL的黑科技,希望对您有用。如果有疑问,可以联系我们。 PostgreSQL数据库一个开源的数据库,具体的信息查看百度百科. 这里介绍一个模块fuzzystrmatch. 安装: psql

《矫正错误的查询条件,PostgreSQL的黑科技》要点:
本文介绍了矫正错误的查询条件,PostgreSQL的黑科技,希望对您有用。如果有疑问,可以联系我们。

PostgreSQL数据库一个开源的数据库,具体的信息查看百度百科.

这里介绍一个模块fuzzystrmatch.

安装:

psql -d module_test -f fuzzystrmatch.sql

该模块提供的函数包括:soundx(),difference(),levenshtein() 和 metaphone() .soundx() 和 metaphone() 是语音算法,将文本字符串转成基于发音的代码字符串.而 difference() 和 levenshtein() 则返回数值代表两个输入字符串的相似度.

  1. soundx()匹配的相似发音方法.对非英文的名字非常有用.

  2. levenshtein() 函数返回两个字符串之间的 Levenshtein 距离.Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符.

  3. metaphone() 函数计算字符串的 metaphone 键.metaphone() 函数可用于拼写检查应用程序.如果成功,则返回字符串的 metaphone 键,如果失败,则返回 false.

  4. difference() The difference function converts two strings to their Soundex codes and then reports the number of matching code positions. Since Soundex codes have four characters,the result ranges from zero to four,with zero being no match and four being an exact match. (Thus,the function is misnamed — similarity would have been a better name.)

我们主要用到的是levenshtein();又叫做“字符串编辑距离”

Levenshtein距离是一种计算两个字符串间的差异程度的字符串度量(string metric).我们可以认为Levenshtein距离就是从一个字符串修改到另一个字符串时,其中编辑单个字符(比如修改、插入、删除)所需要的最少次数.俄罗斯科学家Vladimir Levenshtein于1965年提出了这一概念.

我们认为用户的输入存在N个错误的字符,例如当用户输入‘kay’ 我们需要查询出来与kay有一个不一样字母的所有记录,sql: SELECT * from table where levenshtein(mykey,'kay')=1 .当然完全匹配的(nysql=‘kay’)是不会出现在结果中的,需要额外处理,因为最近距离是0不是1.

矫正错误的查询条件,PostgreSQL的黑科技

postgresql 9.5

《矫正错误的查询条件,PostgreSQL的黑科技》是否对您有启发,欢迎查看更多与《矫正错误的查询条件,PostgreSQL的黑科技》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读