그fuzzystrmatch모듈은 문자열 간의 유사성과 거리를 결정하는 여러 함수를 제공토토 커뮤니티.
현재,사운덱스, 메타폰, d메타폰및dmetaphone_alt함수는 멀티바이트 인코딩(예: utf-8)에서는 제대로 작동하지 않습니다.
이 모듈은 고려됩니다.“신뢰할 수 있는”즉, 슈퍼유저가 아닌 사용자가 설치할 수 있습니다.만들기현재 데이터베이스에 대한 권한입니다.
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('마가렛'), Difference('앤', '마가렛');
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;
이 함수는 두 문자열 사이의 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올바른 거리를 반환합니다. 그렇지 않으면 다음보다 큰 값을 반환합니다.max_d. 만약에max_d음수이면 동작은 다음과 동일합니다.levenshtein.
예:
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('extensive', 'exhaustive', 4);
levenshtein_less_equal
-----------
4
(1행)
Metaphone은 Soundex와 마찬가지로 입력 문자열에 대한 대표 코드를 구성한다는 아이디어를 기반으로 토토 커뮤니티. 두 문자열이 동일한 코드를 갖고 있으면 유사한 것으로 간주됩니다.
이 함수는 입력 문자열의 메타폰 코드를 계산합니다:
metaphone(text source, int max_output_length)은 텍스트를 반환토토 커뮤니티.
출처최대 255자의 null이 아닌 문자열이어야 토토 커뮤니티.max_output_length출력 메타폰 코드의 최대 길이를 설정합니다. 더 길면 출력이 이 길이로 잘립니다.
예:
test=# SELECT 메타폰('GUMBO', 4);
메타폰
-----------
KM
(1행)
Double Metaphone 시스템은 2를 계산토토 커뮤니티.“다음과 같군요”주어진 입력 문자열에 대한 문자열 — a“기본”그리고“대체”. 대부분의 경우 동일하지만, 특히 영어가 아닌 이름의 경우 발음에 따라 약간 다를 수 있습니다. 다음 함수는 기본 코드와 대체 코드를 계산합니다.
dmetaphone(텍스트 소스)이 텍스트를 반환합니다. dmetaphone_alt(텍스트 소스)는 텍스트를 반환합니다.
입력 문자열에는 길이 제한이 없습니다.
예:
test=# SELECT dmetaphone('gumbo');
디메타폰
------------
KMP
(1행)
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.