VillageSQL is a drop-in replacement for MySQL with extensions.
All examples on this page work on VillageSQL. Install Now →
이 가이드는 VillageSQL 0.0.4 이상이 필요합니다.
=와 LIKE가 놓치는 변형을 만들어 냅니다. VillageSQL의 vsql_fuzzystrmatch 확장은 네 가지 접근 방식을 제공합니다: Soundex(유사 발음 그룹화), Levenshtein 편집 거리(문자 단위 비용), Metaphone(발음 기반 인코딩), Double Metaphone(여러 언어적 기원에서 오는 모호한 발음 처리).
설치
vsql_fuzzystrmatch.soundex(...)처럼 호출할 수도 있습니다. 이것은 VEF 이름 해석이며 실제 스키마가 아니므로, vsql_fuzzystrmatch는 SHOW DATABASES에 나타나지 않습니다. 모든 함수는 인자 중 하나라도 NULL이면 NULL을 반환합니다.
Soundex
Soundex는 영어 단어를 소리를 기준으로 4자 코드로 축약합니다. 같은 코드를 가진 단어는 음성적으로 일치하는 것으로 간주됩니다.difference는 두 문자열이 공유하는 Soundex 코드 문자 수를 0–4 점수로 반환합니다. 4 = 동일한 코드입니다.
테이블에서 음성 일치 찾기
Levenshtein 편집 거리
Levenshtein은 한 문자열을 다른 문자열로 바꾸는 데 필요한 단일 문자 편집 — 삽입, 삭제, 치환 — 의 최소 횟수를 셉니다.사용자 정의 연산 비용
levenshtein_cost를 사용하면 삽입, 삭제, 치환에 서로 다른 가중치를 줄 수 있습니다:
조기 종료 임계값
levenshtein_less_equal은 거리가 임계값을 초과하면 계산을 중단하므로 필터링에 더 효율적입니다. 실제 거리가 max_d를 초과하면 전체 거리를 계산하는 대신 max_d + 1을 반환합니다:
편집 거리로 중복 제거
Metaphone
Metaphone은 Soundex보다 더 많은 영어 발음 규칙을 적용하며 가변 길이 출력을 생성합니다.max_output_length 매개변수가 결과 길이를 제한합니다.
Double Metaphone
Double Metaphone은 여러 언어적 기원에서 오는 모호한 발음을 처리합니다 — 독일어, 슬라브어, 스페인어, 히브리어 등에서 유래하여 서로 다른 방식으로 영어화된 이름들입니다. 기본 코드와 대체 코드, 두 개의 코드를 생성합니다.dmetaphone_alt는 기본 코드를 반환합니다.
Double Metaphone을 사용할 때: 데이터에 여러 언어적 배경의 이름이 포함되어 있거나, 사람이라면 동등하다고 볼 일치를 Metaphone이 놓칠 때입니다.
두 코드 모두로 매칭
접근 방식 선택
함수 참조
알려진 제한 사항
함수 오버로딩 없음. VEF는 함수를 이름으로만 등록하므로, 같은 이름의 두 함수는 공존할 수 없습니다. PostgreSQL이 오버로드(인자 2개와 5개의levenshtein)를 사용하는 곳에서, 이 확장은 별도의 이름(levenshtein과 levenshtein_cost)을 사용합니다.
문자열 길이 제한. levenshtein 입력은 255자 이하여야 합니다.