메인 콘텐츠로 건너뛰기
vsql_trgm은 PostgreSQL의 pg_trgm을 포팅한 것입니다. 문자열을 세 글자 조각으로 나누고 두 문자열이 공유하는 조각의 수로 점수를 매기므로, 철자가 틀린 검색어로도 해당 행을 찾을 수 있습니다. LIKE는 너무 엄격하고 전문 검색은 너무 거칠 때 사용하세요.

설치

설치 스크립트, Docker 이미지 또는 릴리스 tarball로 VillageSQL을 설치했다면 vsql_trgm.veb는 이미 서버의 lib/veb/ 디렉터리에 있습니다. 문 하나로 서버에 설치하세요:
설치되었는지 확인합니다:
직접 빌드하려면 저장소의 빌드 지침을 따르세요.

추가되는 기능

세 가지 함수 계열을 추가합니다. 일반 계열은 두 문자열 전체를 비교합니다. 단어 계열은 두 번째 문자열에서 가장 잘 일치하는 부분 문자열을 찾습니다. 엄격한 단어 계열은 같은 일을 하되 단어 경계에 맞춥니다. 각 계열은 자체 기본 임계값을 가집니다.

예제

작은 이름 테이블을 만듭니다:
아무도 입력하지 않은 철자로 검색하고, 돌아온 결과의 순위를 매깁니다:
Peter Brown은 공유하는 트라이그램이 너무 적어 0.3에 도달하지 못하므로 나타나지 않습니다. 무엇이 비교되는지 보려면 트라이그램 자체를 요청하세요:
채움 공백은 의도적입니다. 문자열의 시작과 끝이 점수에 반영되게 합니다.
PostgreSQL의 set_limit()에 대응하는 것은 여기에 없습니다. vsql_trgm은 세션 상태를 유지하지 않기 때문입니다. 대신 원하는 임계값을 trgm_similar_threshold()에 전달하세요. 유사도 필터는 모든 행을 읽으므로, 큰 테이블에 실행하기 전에 측정하세요.

참고 항목