2015-02-06 9 views
0

와인을 검색 할 수있는 검색 입력이 있습니다. é과 같은 문자가 포함 된 와인을 가지고 있습니다 (예 : Dom Pérignon).일치하는 일반 문자로 특수 문자를 구문 분석하십시오.

현재 Dom Perignon을 입력하면 위의 예제 와인을 얻지 못할 것입니다. 그러나 제가 이루고자하는 바는 é 대신에 e을 입력하면 나는 여전히 Dom Pérignon 와인을 얻을 수 있다는 것입니다.

검색 메커니즘 자체는 기본입니다.

입력 :

<input id="search" type="text" placeholder="Search for wine or producer..." ng-change="search()" ng-model="data.search"> 

하고 SQL 쿼리 :

DB.query("SELECT id, name, ... FROM wines WHERE name LIKE ? OR house_name LIKE ? LIMIT 20", [searchFilter + '%', searchFilter + '%']) 

가 어떻게 e를 입력하는 것도 é을 포함하는 와인을 구문 분석하는 능력을 달성 할 수 있을까?

답변

1

각 이름의 '정규화 된'버전을 포함하는 다른 열을 데이터베이스에 추가 한 다음 사용자가 입력 한 각 검색어를 정규화하고이를 사용하여 일치하는 항목을 확인합니다.

정규화는 악센트가없는 문자를 대문자로 변환하고, 대문자를 소문자로 변환하고, 공백과 하이픈 등을 제거하여 많은 일반적인 맞춤법 오류를 잡을 수 있습니다.

관련 문제