반응형
내 사용자는 회사 이름을 포함 할 큰 문자열을 잘라내어 붙여 넣습니다.
각각 고유 한 company_id를 가진 회사 이름의 기존 및 성장하는 MYSQL 데이터베이스가 있습니다.
문자열을 구문 분석하고 사용자가 입력 한 각 회사 이름에 퍼지 일치를 할당 할 수 있기를 원합니다.
지금 당장은 똑바로 문자열 일치를하는 것 또한 느립니다. ** Soundex 인덱싱이 더 빨라 집니까? 사용자가 입력 할 때 몇 가지 옵션을 제공하려면 어떻게해야합니까? **
예를 들어 누군가 다음과 같이 씁니다.
이 질문과 비슷한 다음 스레드를 찾았지만 포스터가 승인되지 않았으며 해당 사용 사례가 적용 가능한지 확실하지 않습니다.
해결 방법
SOUNDEX ()
의 단점은 다음과 같습니다.
예:
SELECT SOUNDEX('Microsoft')
SELECT SOUNDEX('Microsift')
SELECT SOUNDEX('Microsift Corporation')
SELECT SOUNDEX('Microsift Subsidary')
/* all of these return 'M262' */
주요 단점은 둘 사이의 거리를 계산하기 위해 두 문자열이 필요하다는 것입니다. SOUNDEX를 사용하면 미리 계산 된 SOUNDEX를 테이블에 저장하고이를 비교 / 정렬 / 그룹 / 필터링 할 수 있습니다. Levenshtein 거리를 사용하면 "Microsoft"와 "Nzcrosoft"의 차이가 2에 불과하다는 것을 알 수 있지만 그 결과에 도달하는 데 훨씬 더 많은 시간이 걸립니다.
참조 페이지 https://stackoverflow.com/questions/369755
반응형
'MySql' 카테고리의 다른 글
MySQL 오류 1067 (42000) : 'created_at'에 대한 잘못된 기본값 (0) | 2020.11.08 |
---|---|
MySQL WooCommerce : 데이터베이스에서 제품 찾기 (0) | 2020.11.08 |
MySQL PHPUnit을 사용한 데이터베이스 테스트 모범 사례 (0) | 2020.11.07 |
MySQL 134217728 바이트의 허용 된 메모리 크기 소진 (42 바이트 할당 시도) (0) | 2020.11.07 |
MySQL PHP MySQL에서 jQuery AJAX를 사용하여 다시로드하지 않고 양식 제출 (0) | 2020.11.07 |
댓글