이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : F.16. Fuzzystrmatch - 토토 캔 유사성 및 거리 결정버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

F.15. fuzzystrmatch

fuzzystrmatch모듈은 다음을 제공합니다 사이의 유사성과 거리를 결정하는 여러 기능 문자열.

주의

현재,사운덱스, 메타폰, d메타폰dmetaphone_alt함수가 제대로 작동하지 않습니다 멀티바이트 인코딩(예: utf-8).

F.15.1. 사운드덱스

Soundex 시스템은 비슷한 소리를 매칭하는 방법입니다 동일한 코드로 변환하여 이름을 지정합니다. 처음에는 다음이 사용했습니다. 1880년, 1900년, 1910년의 미국 인구 조사. Soundex 영어가 아닌 이름에는 그다지 유용하지 않습니다.

fuzzystrmatch모듈은 두 가지를 제공토토 사이트 순위. Soundex 코드 작업을 위한 함수:

soundex(text)는 텍스트를 반환토토 사이트 순위.
차이(텍스트, 텍스트)는 int를 반환토토 사이트 순위.

사운덱스함수는 다음을 변환합니다. 문자열을 Soundex 코드로 변환합니다.차이함수는 두 문자열을 해당 문자열로 변환합니다. Soundex 코드를 확인한 다음 일치하는 코드 수를 보고합니다. 위치. Soundex 코드에는 4개의 문자가 있으므로 결과는 범위는 0에서 4까지이며, 0은 일치하지 않고 4는 일치하지 않습니다. 정확히 일치합니다. (따라서 함수 이름이 잘못되었습니다 —유사성더 나은 이름이었을 것입니다.)

다음은 몇 가지 사용 예입니다:

SELECT soundex('안녕하세요!');

SELECT soundex('앤'), soundex('앤'), Difference('앤', '앤');
SELECT soundex('앤'), soundex('앤드류'), Difference('앤', '앤드류');
SELECT soundex('앤'), soundex('마가렛'), 차이('앤', '마가렛');

CREATE TABLE s(nm 텍스트);

INSERT INTO s VALUES('존');
INSERT INTO s VALUES('조앤');
INSERT INTO s VALUES ('흔들림');
INSERT INTO s VALUES('잭');

SELECT * FROM s WHERE soundex(nm) = soundex('john');

SELECT * FROM s WHERE 차이(s.nm, 'john')  2;

F.15.2. 레벤슈타인

이 함수는 두 개의 Levenshtein 거리를 계산토토 사이트 순위. 문자열:

levenshtein(text source, text target, int ins_cost, int del_cost, int sub_cost)는 int를 반환토토 사이트 순위.
levenshtein(텍스트 소스, 텍스트 대상)은 int를 반환토토 사이트 순위.
levenshtein_less_equal(text source, text target, int ins_cost, int del_cost, int sub_cost, int max_d)는 int를 반환토토 사이트 순위.
levenshtein_less_equal(text source, text target, int max_d)는 int를 반환토토 사이트 순위.

둘 다출처그리고대상null이 아닌 문자열일 수 있으며 최대값은 다음과 같습니다. 255바이트. 비용 매개변수는 비용을 청구할 금액을 지정합니다. 문자 삽입, 삭제 또는 대체가 각각 가능합니다. 당신 두 번째 버전에서와 같이 비용 매개변수를 생략할 수 있습니다. 기능; 이 경우 기본값은 모두 1입니다.levenshtein_less_equal다음의 가속 버전입니다. 낮은 거리 값에 대한 levenshtein 함수입니다. 실제 거리라면 max_d보다 작거나 같으면levenshtein_less_equal정확한 값을 반환합니다. 그렇지 않으면 이 함수는 다음보다 큰 값을 반환합니다. 최대_일.

예:

test=# SELECT levenshtein('GUMBO', 'GAMBOL');
 레벤슈타인
-------------
           2
(1줄)

test=# SELECT levenshtein('GUMBO', 'GAMBOL', 2,1,1);
 레벤슈타인
-------------
           3
(1줄)

test=# SELECT levenshtein_less_equal('extensive', 'exhaustive',2);
 levenshtein_less_equal
-----------
                      3
(1줄)

test=# SELECT levenshtein_less_equal('확장', '완전',4);
 levenshtein_less_equal
-----------
                      4
(1행)

F.15.3. 메타폰

Soundex와 마찬가지로 Metaphone은 입력 문자열의 대표 코드입니다. 두 개의 문자열은 다음과 같습니다 동일한 코드가 있으면 유사한 것으로 간주됩니다.

이 함수는 입력의 메타폰 코드를 계산합니다 문자열:

metaphone(text source, int max_output_length)은 텍스트를 반환토토 사이트 순위.

출처다음과 같은 null이 아닌 문자열이어야 합니다. 최대 255자입니다.max_output_length최대 길이를 설정합니다. 출력 메타폰 코드; 더 길면 출력이 다음으로 잘립니다. 길이.

예:

test=# SELECT 메타폰('GUMBO', 4);
 메타폰
-----------
 KM
(1행)

F.15.4. 더블 메타폰

Double Metaphone 시스템은 2를 계산토토 사이트 순위."이것 같군요"주어진 입력 문자열에 대한 문자열 — a"1차"그리고"대체". 대부분의 경우는 동일하지만 영어가 아닌 이름의 경우 특히 약간 다를 수 있습니다. 발음에 따라. 이 함수는 기본 및 대체 코드:

dmetaphone(텍스트 소스)이 텍스트를 반환합니다.
dmetaphone_alt(텍스트 소스)는 텍스트를 반환합니다.

입력 문자열에는 길이 제한이 없습니다.

예:

test=# dmetaphone('gumbo') 선택;
 디메타폰
------------
 KMP
(1행)