지원되는 버전 :현재(17) /16 / 15 / 14 / 13
개발 버전 :18 / Devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
이 문서는 지원되지 않는 버전의 배트맨 토토 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

F.15. 배트맨 토토

the배트맨 토토모듈 제공 유사성과 거리를 결정하는 몇 가지 기능 문자열.

주의

현재,soundex, Metaphone, dmetaphonedmetaphone_alt함수는 작동하지 않습니다 멀티 바이트 인코딩 (예 : UTF-8)으로.

F.15.1. soundex

SoundEx 시스템은 유사한 사운드와 일치하는 방법입니다 동일한 코드로 변환하여 이름입니다. 처음에있었습니다 1880 년, 1900 년 및 1910 년 미국 인구 조사에 의해 사용됩니다. 그 soundex는 영어 이외의 이름에 그다지 유용하지 않습니다.

the배트맨 토토모듈 제공 Soundex 코드 작업을위한 두 가지 기능 :

soundex (텍스트)는 텍스트를 반환합니다
차이 (텍스트, 텍스트) 반환 int

thesoundex함수 변환 Soundex 코드의 문자열. 그만큼차이함수는 두 줄을 변환합니다 그들의 soundex 코드와 일치하는 수를보고합니다. 코드 위치. Soundex 코드에는 4 개의 문자가 있으므로 결과는 0에서 4까지, 0은 일치하지 않으며 4는 정확히 일치합니다. (따라서 기능의 이름이 잘못되었습니다 -유사성더 나은 이름.)

여기에 몇 가지 사용 예가 있습니다.

select soundex ( 'Hello World!');

SONCEX ( 'Anne'), soundex ( 'ann'), 차이 ( 'Anne', 'Ann');
SONCEX ( 'Anne'), Soundex ( 'Andrew'), 차이 ( 'Anne', 'Andrew');
SONCENEX ( 'Anne'), SoundEx ( 'Margaret'), 차이 ( 'Anne', 'Margaret');

테이블을 작성하십시오 (nm 텍스트);

s 값에 삽입 ( 'John');
s 값에 삽입 ( 'joan');
s 값에 삽입 ( 'Wobbly');
s 값에 삽입 ( 'Jack');

SOONT * From S Where Soundex (NM) = soundex ( 'John');

SELECT * SELECT WHERE DIFFER (S.NM, 'John') 2;

F.15.2. Levenshtein

이 함수는 그 사이의 Levenshtein 거리를 계산합니다 두 줄 :

levenshtein (텍스트 소스, 텍스트 대상, int ins_cost, int del_cost, int sub_cost) int를 반환합니다.
Levenshtein (텍스트 소스, 텍스트 대상)은 int를 반환합니다
levenshtein_less_equal (텍스트 소스, 텍스트 대상, int ins_cost, int del_cost, int sub_cost, int max_d) int를 반환합니다.
levenshtein_less_equal (텍스트 소스, 텍스트 대상, int max_d) int를 반환합니다.

둘 다소스and대상a 최대 255 바이트. 비용 매개 변수는 얼마의 금액을 지정합니다 문자 삽입, 삭제 또는 대체 비용, 각기. 비용 매개 변수를 생략 할 수 있습니다 함수의 두 번째 버전; 이 경우 그들은 모두 채무 불이행입니다 1까지levenshtein_less_equalis 낮은 값에 대한 Levenshtein 함수의 가속 버전 거리. 실제 거리는 덜 또는 동일하다면 max_d,levenshtein_less_equal반환 그것의 정확한 가치. 그렇지 않으면이 함수는 값을 반환합니다 max_d보다 큽니다.

예 :

test =# Levenshtein ( 'gumbo', 'gambol');
 Levenshtein
-------------
           2
(1 줄)

test =# select levenshtein ( 'gumbo', 'gambol', 2,1,1);
 Levenshtein
-------------
           3
(1 줄)

test =# select levenshtein_less_equal ( '광범위한', '철저한', 2);
 levenshtein_less_equal
-------------------------
                      3
(1 줄)

test =# select levenshtein_less_equal ( '광범위한', '철저한', 4);
 levenshtein_less_equal
-------------------------
                      4
(1 행)

F.15.3. 은유

Soundex와 마찬가지로 은유는 아이디어를 기반으로합니다 입력 문자열에 대한 대표 코드 구성. 둘 그런 다음 문자열이 동일하게 비슷한 것으로 간주됩니다. 코드.

이 함수는 입력의 은유 코드를 계산합니다 끈:

Metaphone (텍스트 소스, int max_output_length) 텍스트를 반환

소스널이 아닌 문자열이어야합니다 최대 255 자.max_output_length최대 길이를 설정합니다 출력 중유 코드; 더 길면 출력이 잘립니다 이 길이.

예 :

test =# Metaphone ( 'Gumbo', 4);
 은유
----------
 km
(1 행)

F.15.4. 이중 은유

이중 중유 시스템은 2를 계산합니다"소리"주어진 입력 문자열에 대한 문자열 - 에이"기본"and an"대체". 대부분의 경우 동일합니다. 그러나 영어 이외의 이름의 경우 특히 약간이 될 수 있습니다. 발음에 따라 다릅니다. 이러한 기능은 계산합니다 기본 및 대체 코드 :

dmetaphone (텍스트 소스)은 텍스트를 반환합니다
dmetaphone_alt (텍스트 소스) 텍스트를 반환

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

예 :

test =# dmetaphone ( 'gumbo');
 dmetaphone
------------
 KMP
(1 행)