2012-06-26 5 views
5

흥미로운 도전 과제 : 내 의뢰인이 SQL 데이터베이스에 제품 정보를 입력합니다. 이 제품은 Rachmaninoff이라는 유명한 러시아 작곡가의 그림입니다. 그 이름은 설명 필드에 있습니다. 이제는 제품을 검색하는 고객 중 일부만이 이름의 철자를 정확하게 알고 있지만 대부분 철자가 틀립니다. 맞춤법 오류 외에도이 이름을 쓰는 고객은 모두 입니다. Rachmaninow, Rahmaninov, 주소가입니다.SQL 퍼지 검색 및 Google 유사 개선

Google에 이러한 맞춤법 오류나 번역본 중 하나를 입력하면 문제를 해결하고 올바른 페이지로 직접 리디렉션하는 방법을 거의 알고 있습니다.

누구나 내 제품 검색에서이 마법의 일부를 얻을 수있는 가능성을 알고 있습니까? 내가 사용할 수있는 API가 있습니까? 내가 모르는 몇 가지 슈퍼 무료 텍스트 옵션? 또는 ...

답변

2

우리는 꽤 많은 성공을 거두어 비슷한 문제를 해결했습니다. 사람들 (독일 이름)을 전화로 주어진 이름으로 검색합니다.

예 : "Schmidt", "Schmitt", "Schmied", "Schmid", "Schmit"및 "Schmiedt"와 같은 매우 일반적인 독일 성은 음성으로 제공 될 때 별개로 붙들기가 불가능합니다. 이것을 "Sylvia"또는 "Silvia"또는 "Sylvya"라는 이름과 "Hi, 저는 Sylvia Schmidt입니다. 고객 번호를 잊어 버렸습니다"라는 이름을 가진 사람을 빨리 발견 할 기회가 없습니다.

우리의 솔루션은 synophones의 목록을 올려 놓는 것이 었습니다. (의사 코드에서, 독일어) :

{consonant}+ := {consonant} 
ie := i 
ii := i 
dt* := t 
y|j := i 
{vocal}v := {vocal}f 

등으로 인해 드리프트가 발생합니다. 이제 우리는 synophone 번역 문자열을 원래 문자열과 함께 저장하여 검색이 가능하도록했습니다. 이것은 정말 잘 작동합니다.

MySQL에는 영문 문자열에 대해 Soundex() 기능이 있다는 것을 알고 있습니다. MSSQL이 비슷한 것을 기대합니다.

+0

좋아요, 꽤 좋은 솔루션 인 것 같습니다. – Tys

+0

하지만 누구나 https://developers.google.com/custom-search/v1/overview를 사용하여 Google 웹 사이트에 표시되는 수정 사항을 어디에서 확인할 수 있는지 알고 있습니까? – Tys

+0

수 없습니다. 검색 용어에는 적용되지만 돌려 주어지는 것은 아닙니다. –