vsql_fuzzystrmatch 확장 기능은 이름 매칭과 중복 제거를 위해 Soundex, Metaphone, Double Metaphone, Levenshtein 편집 거리를 MySQL에 추가합니다.
vsql_fuzzystrmatch는 PostgreSQL의 fuzzystrmatch 확장을 포팅한 것입니다.
한 쌍의 문자열에 대해 서로 다른 두 가지 질문에 답합니다: 발음이 비슷한지, 그리고
몇 번의 편집으로 서로 바뀌는지입니다. 이름 매칭, 철자 교정, 손으로 입력한
레코드의 중복 제거에 사용하세요.
MySQL에는 자체 SOUNDEX()가 있으며, 이름을 한정자 없이 쓰면 내장 함수가
우선합니다. 둘은 결과가 다릅니다: SOUNDEX('Ashcraft')는 A2613을 반환하고,
vsql_fuzzystrmatch.soundex('Ashcraft')는 A261을 반환합니다. MySQL
버전은 임의 길이의 문자열을 반환한다고 문서화되어 있고, 확장 기능의 버전은
4자 Soundex 정의를 따릅니다. 원하는 함수를 얻으려면 호출에 확장 기능 이름을
한정자로 붙이세요. 여기의 다른 함수는 가려지지 않습니다.
levenshtein_less_equal은 실제 거리가 지정한 한도를 넘는 즉시 멈추고, 실제
거리와 상관없이 한도 더하기 1을 반환합니다. 한도가 2이면 거리 3인 쌍에 3을
반환하고, 거리 7인 쌍에도 3을 반환합니다. 한도 더하기 1은 “물어본 것보다 더
멀다”는 뜻으로 읽으세요.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"VillageSQL Server for MySQL - Documentation","description":"Documentation for VillageSQL, a drop-in replacement for MySQL that offers extensions.","colors":{"primary":"#9500BF","light":"#CC66FF","dark":"#1F062A"},"logo":{"light":"https://mintcdn.com/villagesql/ER5Fb1fv5K0c6u26/images/logo-light.svg?fit=max\u0026auto=format\u0026n=ER5Fb1fv5K0c6u26\u0026q=85\u0026s=984aeecbb83c7ff4d729220dc5b295ba","dark":"https://mintcdn.com/villagesql/ER5Fb1fv5K0c6u26/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=ER5Fb1fv5K0c6u26\u0026q=85\u0026s=7c54878160d03b398facdce3c68e8f53","href":"https://villagesql.com"},"favicon":"https://mintcdn.com/villagesql/dJP528IM9EMOJWSW/images/favicon.png?fit=max\u0026auto=format\u0026n=dJP528IM9EMOJWSW\u0026q=85\u0026s=dcd56233103a4ed589abde42130b2a1d","background":{"color":{"dark":"#1F062A"}},"navbar":{"links":[{"icon":"github","href":"https://github.com/villagesql/villagesql-server","label":"GitHub"},{"icon":"discord","href":"https://discord.gg/KSr6whd3Fr","label":"Discord"}]},"footer":{"socials":{"github":"https://github.com/villagesql/villagesql-server","discord":"https://discord.gg/KSr6whd3Fr","linkedin":"https://www.linkedin.com/company/villagesql"}},"seo":{"metatags":{"og:type":"website","og:site_name":"VillageSQL Documentation"},"indexing":"all"},"fonts":{"heading":{"family":"Space Grotesk"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"errors":{"404":{"redirect":false,"title":"This is not the village you are looking for (Error 404)","description":"It looks like you got lost looking for the village. Please go back to the [documentation site](https://villagesql.com/docs) to find what you need."}},"contextual":{"options":["copy","view","claude","chatgpt","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"languages":[{"language":"en","default":true,"href":""},{"language":"ja","href":"ja"},{"language":"ko","href":"ko"},{"language":"zh","href":"zh"},{"language":"pt-BR","href":"pt-BR"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"villagesql","hasAudioNarration":false,"actualSubdomain":"villagesql","customDomains":["villagesql.com"],"gitSource":{"type":"github","owner":"villagesql","repo":"villagesql-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea5444cbdb6f4019023d8d","collectionId":"3738827d-e3a7-41ca-876b-f228a581f851","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea5444cbdb6f4019023d8d"},"feedback":{"thumbs":true,"issues":true,"edits":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aed3be608f6d22a38fe9caa","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"en","tag":"Guides","count":142},{"language":"en","tag":"MySQL Tutorial","count":46},{"language":"en","tag":"Extensions","count":35},{"language":"ja","tag":"拡張機能","count":35},{"language":"ko","tag":"확장 기능","count":35},{"language":"pt-BR","tag":"Extensões","count":35},{"language":"zh","tag":"扩展","count":35},{"language":"en","tag":"Server","count":28},{"language":"en","tag":"Dev releases","count":28},{"language":"en","tag":"Extension Catalog","count":23},{"language":"en","tag":"Available Extensions","count":23},{"language":"ja","tag":"拡張機能カタログ","count":23},{"language":"ja","tag":"利用可能な拡張機能","count":23},{"language":"ko","tag":"확장 기능 카탈로그","count":23},{"language":"ko","tag":"사용 가능한 확장 기능","count":23},{"language":"pt-BR","tag":"Catálogo de Extensões","count":23},{"language":"pt-BR","tag":"Extensões Disponíveis","count":23},{"language":"zh","tag":"扩展目录","count":23},{"language":"zh","tag":"可用扩展","count":23},{"language":"en","tag":"Operate MySQL","count":21},{"language":"en","tag":"Write Queries","count":19},{"language":"en","tag":"Install and Run Server","count":16},{"language":"ja","tag":"C++ SDK","count":14},{"language":"ko","tag":"C++ SDK","count":14},{"language":"pt-BR","tag":"SDK C++","count":14},{"language":"zh","tag":"C++ SDK","count":14},{"language":"ja","tag":"サーバー","count":13},{"language":"ko","tag":"서버","count":13},{"language":"pt-BR","tag":"Servidor","count":13},{"language":"zh","tag":"服务器","count":13},{"language":"ja","tag":"リファレンス","count":11},{"language":"ko","tag":"참조","count":11},{"language":"pt-BR","tag":"Referência","count":11},{"language":"zh","tag":"参考","count":11},{"language":"ja","tag":"サーバーのインストールと実行","count":9},{"language":"ja","tag":"拡張機能の作成","count":9},{"language":"ko","tag":"서버 설치 및 실행","count":9},{"language":"ko","tag":"확장 기능 빌드","count":9},{"language":"pt-BR","tag":"Instalar e Executar o Servidor","count":9},{"language":"pt-BR","tag":"Criar uma Extensão","count":9},{"language":"zh","tag":"安装和运行服务器","count":9},{"language":"zh","tag":"构建扩展","count":9},{"language":"ja","tag":"Rust SDK","count":8},{"language":"ko","tag":"Rust SDK","count":8},{"language":"pt-BR","tag":"SDK Rust","count":8},{"language":"zh","tag":"Rust SDK","count":8},{"language":"ja","tag":"MySQL 8.4","count":5},{"language":"ko","tag":"MySQL 8.4","count":5},{"language":"pt-BR","tag":"MySQL 8.4","count":5},{"language":"zh","tag":"MySQL 8.4","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"help@villagesql.com","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":".nav-dropdown-products-selector-trigger{order:1!important}.hidden.lg\\:flex.items-center.gap-x-2{order:2!important}#navbar,#sidebar,#mobile-nav,#table-of-contents{font-family:var(--font-family-headings-custom)}body{font-family:Arial, sans-serif}button.nav-tabs-item>div.font-medium{color:rgb(var(--gray-800))}html.dark button.nav-tabs-item>div.font-medium{color:rgb(var(--gray-200))}img.nav-logo{height:2.5rem!important;width:auto!important}img[src$=\"/images/pelican.svg\"]{width:1.5rem!important;height:1.5rem!important;margin:-0.25rem}@media (min-width: 1024px){li.navbar-link>a{font-size:0;gap:0;padding:0.5rem}li.navbar-link>a svg{height:1.25rem;width:1.25rem}}[data-callout-type=\"tip\"],[data-callout-type=\"note\"],[data-callout-type=\"info\"]{border-color:#CC66FF!important;background-color:rgb(204 102 255 / 0.08)!important}[data-callout-type=\"warning\"]{border:2px solid #B500BA!important;background-color:#FFFFFF!important}[data-callout-type] [data-component-part=\"callout-content\"]{color:#1F062A!important}[data-callout-type] [data-component-part=\"callout-icon\"] svg{color:#9500BF!important}[data-callout-type=\"warning\"] [data-component-part=\"callout-icon\"] svg{color:#630080!important}html.dark [data-callout-type=\"tip\"],html.dark [data-callout-type=\"note\"],html.dark [data-callout-type=\"info\"]{border-color:#630080!important;background-color:rgb(204 102 255 / 0.08)!important}html.dark [data-callout-type=\"warning\"]{border-color:#B500BA!important;background-color:transparent!important}html.dark [data-callout-type] [data-component-part=\"callout-content\"]{color:#FFFFFF!important}html.dark [data-callout-type] [data-component-part=\"callout-icon\"] svg{color:#CC66FF!important}.agent-setup #ask-assistant-code-block-button{display:none}html.dark .code-block [class*=\"dark:bg-codeblock\"]{background-color:#1F062A!important}html.dark .code-block [class=\"print:hidden\"]{background-image:linear-gradient(to right, rgb(31 6 42 / 0) 0px, rgb(31 6 42 / 0.2) 10px,\n rgb(31 6 42 / 0.5) 25px, rgb(31 6 42 / 0.8) 35px, rgb(31 6 42) 45px)!important}.chat-assistant-floating-input{display:none!important}"}],"page":{"pagePath":"ko/extensions/vsql-fuzzystrmatch","slug":"/ko/extensions/vsql-fuzzystrmatch","pageMetadata":{"title":"MySQL용 vsql_fuzzystrmatch 확장 기능","sidebarTitle":"vsql_fuzzystrmatch","description":"vsql_fuzzystrmatch 확장 기능은 이름 매칭과 중복 제거를 위해 Soundex, Metaphone, Double Metaphone, Levenshtein 편집 거리를 MySQL에 추가합니다.","keywords":"mysql soundex, mysql levenshtein, mysql metaphone, mysql 퍼지 이름 매칭, vsql_fuzzystrmatch","audience":"villagesql-user","href":"/ko/extensions/vsql-fuzzystrmatch"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"vsql_fuzzystrmatch 확장 기능은 이름 매칭과 중복 제거를 위해 Soundex, Metaphone, Double Metaphone, Levenshtein 편집 거리를 MySQL에 추가합니다.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`vsql_fuzzystrmatch`}),`는 PostgreSQL의 `,_jsx(_components.code,{children:`fuzzystrmatch`}),` 확장을 포팅한 것입니다.\n한 쌍의 문자열에 대해 서로 다른 두 가지 질문에 답합니다: 발음이 비슷한지, 그리고\n몇 번의 편집으로 서로 바뀌는지입니다. 이름 매칭, 철자 교정, 손으로 입력한\n레코드의 중복 제거에 사용하세요.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`관리자`})}),_jsx(_components.td,{children:`VillageSQL`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`소스 및 전체 문서`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://github.com/villagesql/vsql-fuzzystrmatch`,children:`villagesql/vsql-fuzzystrmatch`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`라이선스`})}),_jsx(_components.td,{children:`GPL-2.0`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`install`,children:`설치`}),`\n`,_jsxs(_components.p,{children:[`설치 스크립트, Docker 이미지 또는 릴리스 tarball로 VillageSQL을 설치했다면\n`,_jsx(_components.code,{children:`vsql_fuzzystrmatch.veb`}),`는 이미 서버의 `,_jsx(_components.code,{children:`lib/veb/`}),` 디렉터리에 있습니다. 문 하나로\n서버에 설치하세요:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`INSTALL EXTENSION vsql_fuzzystrmatch;`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`설치되었는지 확인합니다:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` EXTENSION_NAME`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`FROM`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` INFORMATION_SCHEMA`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`EXTENSIONS`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`WHERE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` EXTENSION_NAME `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'vsql_fuzzystrmatch'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+--------------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| EXTENSION_NAME |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+--------------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| vsql_fuzzystrmatch |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+--------------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`직접 빌드하려면 `,_jsx(_components.a,{href:`https://github.com/villagesql/vsql-fuzzystrmatch`,children:`저장소`}),`의\n빌드 지침을 따르세요.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-it-adds`,children:`추가되는 기능`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`함수`}),_jsx(_components.th,{children:`반환값`}),_jsx(_components.th,{children:`설명`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`vsql_fuzzystrmatch.soundex(s)`})}),_jsx(_components.td,{children:`text`}),_jsx(_components.td,{children:`Soundex 코드. 발음이 비슷한 이름은 같은 값을 가집니다. 이 함수는 한정자를 붙여야 합니다. 아래 참고 사항을 보세요`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`difference(a, b)`})}),_jsx(_components.td,{children:`int`}),_jsx(_components.td,{children:`네 개의 Soundex 자리 중 몇 개가 일치하는지, 0부터 4까지`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`levenshtein(a, b)`})}),_jsx(_components.td,{children:`int`}),_jsx(_components.td,{children:`편집 거리`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`levenshtein_cost(a, b, ins, del, sub)`})}),_jsx(_components.td,{children:`int`}),_jsx(_components.td,{children:`같은 값이지만 연산별 비용을 직접 지정`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`levenshtein_less_equal(a, b, max)`})}),_jsx(_components.td,{children:`int`}),_jsxs(_components.td,{children:[`거리. `,_jsx(_components.code,{children:`max`}),`를 넘으면 계산을 멈추고 `,_jsx(_components.code,{children:`max`}),` 더하기 1을 반환`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`levenshtein_less_equal_cost(a, b, ins, del, sub, max)`})}),_jsx(_components.td,{children:`int`}),_jsx(_components.td,{children:`위의 두 가지를 함께 적용`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`metaphone(s, length)`})}),_jsx(_components.td,{children:`text`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`length`}),`로 잘라낸 Metaphone 코드`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dmetaphone(s)`})}),_jsx(_components.td,{children:`text`}),_jsx(_components.td,{children:`기본 Double Metaphone 코드`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dmetaphone_alt(s)`})}),_jsx(_components.td,{children:`text`}),_jsx(_components.td,{children:`대체 코드. 없으면 기본 코드로 대체`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`example`,children:`예제`}),`\n`,_jsxs(_components.p,{children:[`같은 이름의 두 철자가 같은 Soundex 코드를 만들고, `,_jsx(_components.code,{children:`difference`}),`는 일치도를\n4점 만점으로 매깁니다:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` vsql_fuzzystrmatch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`soundex`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Robert'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`AS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` robert,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` vsql_fuzzystrmatch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`soundex`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Rupert'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`AS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` rupert,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` difference`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Robert'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Rupert'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`AS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` same_sound;`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+--------+--------+------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| robert | rupert | same_sound |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+--------+--------+------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| R163 | R163 | 4 |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+--------+--------+------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`편집 거리는 대신 변경 횟수를 셉니다:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` levenshtein(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'kitten'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'sitting'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`AS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` edits,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` levenshtein_less_equal(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'kitten'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'sitting'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`AS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` capped_at_2;`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-------+-------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| edits | capped_at_2 |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-------+-------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| 3 | 3 |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-------+-------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Metaphone은 Thompson의 `,_jsx(_components.code,{children:`Th`}),`처럼 철자가 감추는 소리를 처리합니다:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` metaphone(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Thompson'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`AS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` metaphone, dmetaphone(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Thompson'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`AS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` dmetaphone;`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-----------+------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| metaphone | dmetaphone |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-----------+------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`| 0MPSN | TMPSN |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`+-----------+------------+`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`MySQL에는 자체 `,_jsx(_components.code,{children:`SOUNDEX()`}),`가 있으며, 이름을 한정자 없이 쓰면 내장 함수가\n우선합니다. 둘은 결과가 다릅니다: `,_jsx(_components.code,{children:`SOUNDEX('Ashcraft')`}),`는 `,_jsx(_components.code,{children:`A2613`}),`을 반환하고,\n`,_jsx(_components.code,{children:`vsql_fuzzystrmatch.soundex('Ashcraft')`}),`는 `,_jsx(_components.code,{children:`A261`}),`을 반환합니다. MySQL\n버전은 임의 길이의 문자열을 반환한다고 문서화되어 있고, 확장 기능의 버전은\n4자 Soundex 정의를 따릅니다. 원하는 함수를 얻으려면 호출에 확장 기능 이름을\n한정자로 붙이세요. 여기의 다른 함수는 가려지지 않습니다.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`levenshtein_less_equal`}),`은 실제 거리가 지정한 한도를 넘는 즉시 멈추고, 실제\n거리와 상관없이 한도 더하기 1을 반환합니다. 한도가 2이면 거리 3인 쌍에 3을\n반환하고, 거리 7인 쌍에도 3을 반환합니다. 한도 더하기 1은 “물어본 것보다 더\n멀다”는 뜻으로 읽으세요.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`see-also`,children:`참고 항목`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/en/guides/fuzzy-string-matching`,children:`MySQL에서의 퍼지 문자열 매칭`}),` — 음성 코드와 편집 거리 중 선택하기`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/en/guides/trigram-similarity`,children:`트라이그램 유사도`}),` — 쌍에 점수를 매기는 대신 부분 일치의 순위 매기기`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ko/extensions/install`,children:`확장 기능 설치`}),` — `,_jsx(_components.code,{children:`INSTALL EXTENSION`}),`의 동작 방식과 서버가 번들을 찾는 위치`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ko/extensions/catalog`,children:`사용 가능한 확장 기능`}),` — 전체 카탈로그`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://github.com/villagesql/vsql-fuzzystrmatch`,children:`villagesql/vsql-fuzzystrmatch`}),` — 소스, 빌드 지침, 알려진 제한 사항`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"MySQL용 vsql_fuzzystrmatch 확장 기능","sidebarTitle":"vsql_fuzzystrmatch","description":"vsql_fuzzystrmatch 확장 기능은 이름 매칭과 중복 제거를 위해 Soundex, Metaphone, Double Metaphone, Levenshtein 편집 거리를 MySQL에 추가합니다.","keywords":"mysql soundex, mysql levenshtein, mysql metaphone, mysql 퍼지 이름 매칭, vsql_fuzzystrmatch","audience":"villagesql-user","href":"/ko/extensions/vsql-fuzzystrmatch"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"설치","slug":"install","depth":2,"children":[]},{"title":"추가되는 기능","slug":"what-it-adds","depth":2,"children":[]},{"title":"예제","slug":"example","depth":2,"children":[]},{"title":"참고 항목","slug":"see-also","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/villagesql/2202b5e0d18501d7/consent-loader.js"],"subdomain":"villagesql","siteName":"VillageSQL Server for MySQL - Documentation","title":"MySQL용 vsql_fuzzystrmatch 확장 기능 - VillageSQL Server for MySQL - Documentation","contextualStarterQuestions":[{"_id":"6aed3c230975dbe7e5eaf4de","deploymentId":"690e4c8e612a67c5b7e46992","questionText":"How does Levenshtein distance work?","status":"active","generatedBy":"contextual","path":"ko/extensions/vsql-fuzzystrmatch","createdAt":"2026-11-06T02:32:03.972Z","updatedAt":"2026-11-06T02:32:03.972Z","__v":0},{"_id":"6aed3c230975dbe7e5eaf4dd","deploymentId":"690e4c8e612a67c5b7e46992","questionText":"What functions does it provide?","status":"active","generatedBy":"contextual","path":"ko/extensions/vsql-fuzzystrmatch","createdAt":"2026-11-06T02:32:03.971Z","updatedAt":"2026-11-06T02:32:03.971Z","__v":0},{"_id":"6aed3c230975dbe7e5eaf4dc","deploymentId":"690e4c8e612a67c5b7e46992","questionText":"How do I install the extension?","status":"active","generatedBy":"contextual","path":"ko/extensions/vsql-fuzzystrmatch","createdAt":"2026-11-06T02:32:03.971Z","updatedAt":"2026-11-06T02:32:03.971Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/extensions/vsql-fuzzystrmatch","matchLevel":1},"ja":{"href":"/ja/extensions/vsql-fuzzystrmatch","matchLevel":1},"ko":{"href":"/ko/extensions/vsql-fuzzystrmatch","matchLevel":0},"zh":{"href":"/zh/extensions/vsql-fuzzystrmatch","matchLevel":1},"pt-BR":{"href":"/pt-BR/extensions/vsql-fuzzystrmatch","matchLevel":1}}},"lastModified":"2026-11-06T02:31:22.505Z","originalFileLocation":"ko/extensions/vsql-fuzzystrmatch.mdx","locale":"ko"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"vsql_fuzzystrmatch 확장 기능은 이름 매칭과 중복 제거를 위해 Soundex, Metaphone, Double Metaphone, Levenshtein 편집 거리를 MySQL에 추가합니다.\">\u003cmeta data-mint-head name=\"application-name\" content=\"VillageSQL Server for MySQL - Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"MySQL용 vsql_fuzzystrmatch 확장 기능 - VillageSQL Server for MySQL - Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"vsql_fuzzystrmatch 확장 기능은 이름 매칭과 중복 제거를 위해 Soundex, Metaphone, Double Metaphone, Levenshtein 편집 거리를 MySQL에 추가합니다.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"VillageSQL Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://villagesql.com/docs/ko/extensions/vsql-fuzzystrmatch\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://villagesql.mintlify.site/docs/_mintlify/api/og/v2?division=%EC%82%AC%EC%9A%A9+%EA%B0%80%EB%8A%A5%ED%95%9C+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5\u0026amp;title=MySQL%EC%9A%A9+vsql_fuzzystrmatch+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5\u0026amp;description=vsql_fuzzystrmatch+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5%EC%9D%80+%EC%9D%B4%EB%A6%84+%EB%A7%A4%EC%B9%AD%EA%B3%BC+%EC%A4%91%EB%B3%B5+%EC%A0%9C%EA%B1%B0%EB%A5%BC+%EC%9C%84%ED%95%B4+Soundex%2C+Metaphone%2C+Double+Metaphone%2C+Levenshtein+%ED%8E%B8%EC%A7%91+%EA%B1%B0%EB%A6%AC%EB%A5%BC+MySQL%EC%97%90+%EC%B6%94%EA%B0%80%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=88e90f7620ba1dac07c284b1\u0026amp;signature=2be41b00c52bd62bf40ca1ed7d5b826a433c9d428a177c697af03eb4e99f24db\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"MySQL용 vsql_fuzzystrmatch 확장 기능 - VillageSQL Server for MySQL - Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"vsql_fuzzystrmatch 확장 기능은 이름 매칭과 중복 제거를 위해 Soundex, Metaphone, Double Metaphone, Levenshtein 편집 거리를 MySQL에 추가합니다.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://villagesql.mintlify.site/docs/_mintlify/api/og/v2?division=%EC%82%AC%EC%9A%A9+%EA%B0%80%EB%8A%A5%ED%95%9C+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5\u0026amp;title=MySQL%EC%9A%A9+vsql_fuzzystrmatch+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5\u0026amp;description=vsql_fuzzystrmatch+%ED%99%95%EC%9E%A5+%EA%B8%B0%EB%8A%A5%EC%9D%80+%EC%9D%B4%EB%A6%84+%EB%A7%A4%EC%B9%AD%EA%B3%BC+%EC%A4%91%EB%B3%B5+%EC%A0%9C%EA%B1%B0%EB%A5%BC+%EC%9C%84%ED%95%B4+Soundex%2C+Metaphone%2C+Double+Metaphone%2C+Levenshtein+%ED%8E%B8%EC%A7%91+%EA%B1%B0%EB%A6%AC%EB%A5%BC+MySQL%EC%97%90+%EC%B6%94%EA%B0%80%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=88e90f7620ba1dac07c284b1\u0026amp;signature=2be41b00c52bd62bf40ca1ed7d5b826a433c9d428a177c697af03eb4e99f24db\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/villagesql/LyGu9hbDVoyQmlU_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"VillageSQL Server for MySQL - Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9500BF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://villagesql.com/docs/ko/extensions/vsql-fuzzystrmatch\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/ko/extensions/vsql-fuzzystrmatch.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://villagesql.com/docs/ko/extensions/vsql-fuzzystrmatch\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://villagesql.com/docs/en/extensions/vsql-fuzzystrmatch\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://villagesql.com/docs/ja/extensions/vsql-fuzzystrmatch\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://villagesql.com/docs/zh/extensions/vsql-fuzzystrmatch\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://villagesql.com/docs/pt-BR/extensions/vsql-fuzzystrmatch\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://villagesql.com/docs/en/extensions/vsql-fuzzystrmatch\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://villagesql.com/#organization\",\"name\":\"VillageSQL Server for MySQL - Documentation\",\"url\":\"https://villagesql.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/villagesql/ER5Fb1fv5K0c6u26/images/logo-light.svg?fit=max\u0026auto=format\u0026n=ER5Fb1fv5K0c6u26\u0026q=85\u0026s=984aeecbb83c7ff4d729220dc5b295ba\"}},{\"@type\":\"WebSite\",\"@id\":\"https://villagesql.com/docs#website\",\"name\":\"VillageSQL Server for MySQL - Documentation\",\"url\":\"https://villagesql.com/docs\",\"publisher\":{\"@id\":\"https://villagesql.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://villagesql.com/docs/ko/extensions/vsql-fuzzystrmatch#webpage\",\"url\":\"https://villagesql.com/docs/ko/extensions/vsql-fuzzystrmatch\",\"name\":\"MySQL용 vsql_fuzzystrmatch 확장 기능\",\"description\":\"vsql_fuzzystrmatch 확장 기능은 이름 매칭과 중복 제거를 위해 Soundex, Metaphone, Double Metaphone, Levenshtein 편집 거리를 MySQL에 추가합니다.\",\"dateModified\":\"2026-11-06T02:31:22.505Z\",\"isPartOf\":{\"@id\":\"https://villagesql.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://villagesql.com/docs/ko/extensions/vsql-fuzzystrmatch#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://villagesql.com/docs/ko/extensions/vsql-fuzzystrmatch#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"확장 기능 카탈로그\",\"item\":\"https://villagesql.com/docs/ko/extensions/vsql-ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"사용 가능한 확장 기능\",\"item\":\"https://villagesql.com/docs/ko/extensions/catalog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"MySQL용 vsql_fuzzystrmatch 확장 기능\",\"item\":\"https://villagesql.com/docs/ko/extensions/vsql-fuzzystrmatch\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://villagesql.com/docs/ko/extensions/vsql-fuzzystrmatch#article\",\"headline\":\"MySQL용 vsql_fuzzystrmatch 확장 기능\",\"name\":\"MySQL용 vsql_fuzzystrmatch 확장 기능\",\"description\":\"vsql_fuzzystrmatch 확장 기능은 이름 매칭과 중복 제거를 위해 Soundex, Metaphone, Double Metaphone, Levenshtein 편집 거리를 MySQL에 추가합니다.\",\"url\":\"https://villagesql.com/docs/ko/extensions/vsql-fuzzystrmatch\",\"mainEntityOfPage\":{\"@id\":\"https://villagesql.com/docs/ko/extensions/vsql-fuzzystrmatch#webpage\"},\"dateModified\":\"2026-11-06T02:31:22.505Z\",\"publisher\":{\"@id\":\"https://villagesql.com/#organization\"},\"isPartOf\":{\"@id\":\"https://villagesql.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"VillageSQL Server for MySQL - Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"VillageSQL Server for MySQL - Documentation","nav":{"global":null,"languages":[{"language":"en","default":true,"pages":[{"title":"en","href":"/en/extensions/vsql-fuzzystrmatch"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/extensions/vsql-fuzzystrmatch"}]},{"language":"ko","tabs":[{"tab":"개요","pages":[{"title":"개요","href":"/ko"}]},{"tab":"확장 기능","groups":[{"group":"확장 기능 설치 및 실행","pages":[{"title":"확장 설치","href":"/ko/extensions/install"},{"title":"확장 프로그램 제거","href":"/ko/extensions/uninstall"},{"title":"확장 관리","href":"/ko/extensions/managing"}]},{"group":"확장 기능 카탈로그","pages":[{"group":"사용 가능한 확장 기능","root":{"title":"사용 가능한 확장 기능","href":"/ko/extensions/catalog"},"expanded":false,"pages":[{"title":"MySQL용 vsql_ai 확장 기능","sidebarTitle":"vsql_ai","href":"/ko/extensions/vsql-ai"},{"title":"MySQL용 vsql_boolean 확장 기능","sidebarTitle":"vsql_boolean","href":"/ko/extensions/vsql-boolean"},{"title":"MySQL용 vsql_crypto 확장 기능","sidebarTitle":"vsql_crypto","href":"/ko/extensions/vsql-crypto"},{"title":"MySQL용 vsql_cube 확장 기능","sidebarTitle":"vsql_cube","href":"/ko/extensions/vsql-cube"},{"title":"MySQL용 vsql_currency 확장 기능","sidebarTitle":"vsql_currency","href":"/ko/extensions/vsql-currency"},{"title":"MySQL용 vsql_duckdb 확장 기능","sidebarTitle":"vsql_duckdb","description":"vsql_duckdb 확장 기능은 MySQL 안에서 DuckDB를 실행하므로, 쿼리가 객체 스토리지나 디스크의 Parquet, CSV, JSON 파일을 읽고 행을 JSON으로 반환할 수 있습니다.","href":"/ko/extensions/vsql-duckdb"},{"title":"MySQL용 vsql_fuzzystrmatch 확장 기능","sidebarTitle":"vsql_fuzzystrmatch","href":"/ko/extensions/vsql-fuzzystrmatch"},{"title":"MySQL용 vsql_http 확장 기능","sidebarTitle":"vsql_http","description":"vsql_http 확장 기능은 MySQL 쿼리 안에서 GET, POST, PUT, PATCH, DELETE 요청을 보내고 각 응답을 JSON으로 반환합니다.","href":"/ko/extensions/vsql-http"},{"title":"MySQL용 vsql_mcp 확장 기능","sidebarTitle":"vsql_mcp","href":"/ko/extensions/vsql-mcp"},{"title":"MySQL용 vsql_network_address 확장 기능","sidebarTitle":"vsql_network_address","href":"/ko/extensions/vsql-network-address"},{"title":"MySQL용 vsql_oauth2 확장 기능","sidebarTitle":"vsql_oauth2","href":"/ko/extensions/vsql-oauth2"},{"title":"MySQL용 vsql_rest 확장 기능","sidebarTitle":"vsql_rest","href":"/ko/extensions/vsql-rest"},{"title":"MySQL용 vsql_stat_ch 확장 기능","sidebarTitle":"vsql_stat_ch","href":"/ko/extensions/vsql-stat-ch"},{"title":"MySQL용 vsql_trgm 확장 기능","sidebarTitle":"vsql_trgm","href":"/ko/extensions/vsql-trgm"},{"title":"MySQL용 vsql_uuid 확장 기능","sidebarTitle":"vsql_uuid","href":"/ko/extensions/vsql-uuid"},{"title":"MySQL용 prometheus_exporter 확장 기능","sidebarTitle":"prometheus_exporter","href":"/ko/extensions/prometheus-exporter"},{"title":"MySQL용 vsql_address_standardizer 확장 기능","sidebarTitle":"vsql_address_standardizer","href":"/ko/extensions/vsql-address-standardizer"},{"title":"MySQL용 vsql_luhn 확장 기능","sidebarTitle":"vsql_luhn","href":"/ko/extensions/vsql-luhn"},{"title":"MySQL용 vsql_nanoid 확장 기능","sidebarTitle":"vsql_nanoid","href":"/ko/extensions/vsql-nanoid"},{"title":"MySQL용 vsql_pgjwt 확장 기능","sidebarTitle":"vsql_pgjwt","href":"/ko/extensions/vsql-pgjwt"},{"title":"MySQL용 vsql_slugify 확장 기능","sidebarTitle":"vsql_slugify","href":"/ko/extensions/vsql-slugify"},{"title":"MySQL용 vsql_statistics 확장 기능","sidebarTitle":"vsql_statistics","href":"/ko/extensions/vsql-statistics"},{"title":"MySQL용 vsql_complex 확장 기능","sidebarTitle":"vsql_complex","href":"/ko/extensions/vsql-complex"}]}]},{"group":"확장 기능 빌드","pages":[{"title":"C++로 확장 만들기","href":"/ko/extensions/build/create"},{"title":"Rust로 확장 만들기","href":"/ko/extensions/build/rust-sdk"},{"title":"확장 프로그램 또는 플러그인 및 컴포넌트","href":"/ko/extensions/build/extensions-or-plugins"},{"title":"확장 아키텍처","href":"/ko/extensions/build/architecture"},{"title":"확장과 ABI의 동작 방식","href":"/ko/extensions/build/extension-abi-behavior"},{"group":"고급 주제","expanded":false,"pages":[{"title":"미리보기 기능","href":"/ko/extensions/build/preview-capabilities"},{"title":"사용자 정의 인덱스","href":"/ko/extensions/build/custom-indexes"},{"title":"PostgreSQL과 비교한 VEF 커버리지","href":"/ko/extensions/build/postgresql-hooks"},{"title":"프로토콜 1 API","href":"/ko/extensions/build/protocol-1"}]}]}]},{"tab":"서버","menu":[{"item":"MySQL 8.4","icon":"database","pages":[{"title":"MySQL 8.4","href":"/ko/8.4/stable/introduction"}]},{"item":"Percona Server 8.4","icon":"database","pages":[{"title":"Percona Server 8.4","href":"/ko/8.4/stable/percona"}]},{"item":"MySQL 9.7","icon":"database","pages":[{"title":"MySQL 9.7","href":"/ko/9.7/stable/introduction"}]},{"item":"이전 릴리스","icon":"clock-rotate-left","pages":[{"title":"이전 릴리스","href":"/ko/8.4/0.0.6"}]}],"pages":[{"title":"서버","href":"/ko/8.4/stable/introduction"}]},{"tab":"참조","menu":[{"item":"C++ SDK","icon":"code","pages":[{"title":"C++ SDK","href":"/ko/sdk/cpp/extension-api-reference"}]},{"item":"Rust SDK","icon":"rust","pages":[{"title":"Rust SDK","href":"/ko/sdk/rust/api-reference"}]}],"pages":[{"title":"참조","href":"/ko/sdk/cpp/extension-api-reference"}]},{"tab":"리소스","menu":[{"item":"villagesql.com","icon":"https://mintlify.s3.us-west-1.amazonaws.com/villagesql/images/pelican.svg","href":"https://villagesql.com"},{"item":"GitHub","icon":"github","href":"https://github.com/villagesql/villagesql-server"},{"item":"이슈","icon":"bug","href":"https://github.com/villagesql/villagesql-server/issues"},{"item":"Discord","icon":"discord","href":"https://discord.gg/KSr6whd3Fr"},{"item":"블로그","icon":"newspaper","href":"https://villagesql.com/blog"},{"item":"서버에 기여","icon":"code-pull-request","href":"https://github.com/villagesql/villagesql-server/blob/main/CONTRIBUTING.md"},{"item":"문서에 기여","icon":"pen-nib","href":"https://github.com/villagesql/villagesql-docs/blob/main/CONTRIBUTING.md"}]}]},{"language":"zh","pages":[{"title":"zh","href":"/zh/extensions/vsql-fuzzystrmatch"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/pt-BR/extensions/vsql-fuzzystrmatch"}]}]},"basePath":"","title":"MySQL용 vsql_fuzzystrmatch 확장 기능 - VillageSQL Server for MySQL - Documentation","buildId":"dpl_CEsowfH15TDzsBT2BFbX312Be4Ct","deploymentId":"dpl_CEsowfH15TDzsBT2BFbX312Be4Ct","dynamics":[],"chunks":[]}