矫正错误的查询条件,PostgreSQL的黑科技
《矫正错误的查询条件,PostgreSQL的黑科技》要点: PostgreSQL数据库一个开源的数据库,具体的信息查看百度百科. 这里介绍一个模块fuzzystrmatch. 安装: psql -d module_test -f fuzzystrmatch.sql 该模块提供的函数包括:soundx(),difference(),levenshtein() 和 metaphone() .soundx() 和 metaphone() 是语音算法,将文本字符串转成基于发音的代码字符串.而 difference() 和 levenshtein() 则返回数值代表两个输入字符串的相似度.
我们主要用到的是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的黑科技》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |