저는 Metaphone과 Double Metaphone 검색 알고리즘에 대해 배우기 시작했습니다. 몇 가지 질문이 있습니다. Metaphone Wiki 페이지에서 구현과 관련된 몇 가지 소스, 특히 MySQL 구현을 발견했습니다. 내가 테스트 데이터베이스를 가지고 테스트 해보고 싶었 기 때문에 metaphone.sql 파일 (double metaphone 함수 포함)을 처음으로 가져 왔습니다. here왜이 MySQL 이중 메타 폰 기능이 제대로 작동하지 않습니까?
바로 지금, 나는 모든 테이블을 갖고 있습니다. '이름'열에있는 국가, 예 : 'Afghanistan', 'Albania', 'Algeria'등등. 그래서, 먼저 실제로 각 나라의 Double Metaphone 문자열을 저장하기 위해 테이블에 새로운 열을 만들고 싶었습니다. 다음 코드를 실행했습니다 :
UPDATE country SET NameDM = dm(name)
모두 제대로 작동했습니다. 아프가니스탄의 메타 폰 문자열은 'AFKNSTN', 알바니아는 'ALPN', 알제리는 'ALKR, ALJR'등입니다. "훌륭합니다."
그러나 테이블 쿼리를 시도 할 때 결과가 없습니다. metaphone.sql의 저자 당, 나는 다음과 같은 SQL 문의 구문을 준수 : 그래서
SELECT Name FROM tblPeople WHERE dm(Name) = dm(@search)
, 나는 다음이 코드를 변경 : 물론
SELECT * FROM country WHERE dm(name) = dm(@search)
, 나는 "변경 @ 검색 "을 찾고 있었지만 각 SQL 쿼리가 끝나면 결과는 0 점이됩니다.
누구든지이 문제를 설명 할 수 있습니까? 중요한 것을 놓친 건가요? 아니면 메타 폰 알고리즘을 오해 한 것입니까?
감사합니다.
링크가 끊어졌습니다. –
MySQL (및 Python) 코드가 GitHub에 있습니다. https://github.com/AtomBoy/double-metaphone – Andrew