본문 바로가기
MySql

MySQL 자동 완성을 위해 PHP와 MYSQL의 회사 이름을 모호하게 일치시키는 방법은 무엇입니까?

by 베이스 공부 2020. 11. 7.
반응형

내 사용자는 회사 이름을 포함 할 큰 문자열을 잘라내어 붙여 넣습니다.

각각 고유 한 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

 

 

반응형

댓글