readme.fuzzystrmatch

来自「PostgreSQL 8.2中增加了很多企业用户所需要的功能和性能上的提高,其开」· FUZZYSTRMATCH 代码 · 共 145 行

FUZZYSTRMATCH
145
字号
/* * fuzzystrmatch.c * * Functions for "fuzzy" comparison of strings * * Joe Conway <mail@joeconway.com> * * Copyright (c) 2001-2006, PostgreSQL Global Development Group * ALL RIGHTS RESERVED; * * levenshtein() * ------------- * Written based on a description of the algorithm by Michael Gilleland * found at http://www.merriampark.com/ld.htm * Also looked at levenshtein.c in the PHP 4.0.6 distribution for * inspiration. * * metaphone() * ----------- * Modified for PostgreSQL by Joe Conway. * Based on CPAN's "Text-Metaphone-1.96" by Michael G Schwern <schwern@pobox.com> * Code slightly modified for use as PostgreSQL function (palloc, elog, etc). * Metaphone was originally created by Lawrence Philips and presented in article * in "Computer Language" December 1990 issue. * * dmetaphone() and dmetaphone_alt() * --------------------------------- * A port of the DoubleMetaphone perl module by Andrew Dunstan. See dmetaphone.c * for more detail. * * soundex() * ----------- * Folded existing soundex contrib into this one. Renamed text_soundex() (C function) * to soundex() for consistency. * * difference() * ------------ * Return the difference between two strings' soundex values.  Kris Jurka * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without a written agreement * is hereby granted, provided that the above copyright notice and this * paragraph and the following two paragraphs appear in all copies. *  * IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS * DOCUMENTATION, EVEN IF THE AUTHOR OR DISTRIBUTORS HAVE BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. *  * THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE AUTHOR AND DISTRIBUTORS HAS NO OBLIGATIONS TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * */Version 0.3 (30 June, 2004):Release Notes:  Version 0.3   - added double metaphone code from Andrew Dunstan   - change metaphone so that an empty input string causes an empty     output string to be returned, instead of throwing an ERROR   - fixed examples in README.soundex  Version 0.2    - folded soundex contrib into this one  Version 0.1    - initial release    Installation:  Place these files in a directory called 'fuzzystrmatch' under 'contrib' in the PostgreSQL source tree. Then run:    make    make install  You can use fuzzystrmatch.sql to create the functions in your database of choice, e.g.    psql -U postgres template1 < fuzzystrmatch.sql  installs following functions into database template1:     levenshtein() - calculates the levenshtein distance between two strings     metaphone() - calculates the metaphone code of an input stringDocumentation==================================================================Namelevenshtein -- calculates the levenshtein distance between two stringsSynopsislevenshtein(text source, text target)Inputs  source    any text string, 255 characters max, NOT NULL  target    any text string, 255 characters max, NOT NULLOutputs  Returns intExample usage  select levenshtein('GUMBO','GAMBOL');==================================================================Namemetaphone -- calculates the metaphone code of an input stringSynopsismetaphone(text source, int max_output_length)Inputs  source    any text string, 255 characters max, NOT NULL  max_output_length    maximum length of the output metaphone code; if longer, the output    is truncated to this lengthOutputs  Returns textExample usage  select metaphone('GUMBO',4);==================================================================-- Joe Conway

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?