2013-03-25 1 views
1

모든 단어를 영어로 시작하는 모든 단어를 쉽게 검색 할 수 있습니다. 예를 들어 "a"로 시작하는 모든 단어를 쿼리하는 경우 다음 쿼리를 실행합니다.모든 한국어 단어를 쿼리하는 방법은 초기 문자로 시작합니다

,
SELECT * FROM table WHERE word LIKE 'a%'; 

우리는 .... "후", "에서"

을 "은"와 같은 결과를 얻을 수 있습니다 그러나 한국어 단어가 하나의 유니 코드 문자로 간주되기 때문에 그것은 한국에서 동일하지 않습니다 그래서이 검색어 :

SELECT * FROM table WHERE word LIKE 'ㄱ%'; 

은 "가", "고", "간"과 같은 단어를 반환하지 않습니다. 결과에 "ㄱ자", "ㄱ견"...이 표시 될 수 있습니다.

결과를 얻으려면 어떻게해야합니까? 내가 예상했던대로? (예 : "가", "고", "간"과 같은 단어를 얻을 수 있습니다. "ㄱ"로 시작 단어를 쿼리하려고 할 때)

대단히 고마워요!

답변

0

여기서 문제는 유니 코드 형식과 자음과 모음을 결합하여 새로운 문자를 만드는 한국어의 고유 한 동작 중 하나입니다. 이러한 새 문자를 개별 글리프 또는 결합 글리프로 저장할 수 있습니다. 이런 식으로 검색하려면 개별 글리프로 저장해야합니다. 즉, DB에 저장 될 모든 들어오는 문자열을 가져 와서 삽입하기 전에 처리하여 복합 글리프를 해당 구성 요소로 분리합니다. 기존 데이터베이스가있는 경우 기존 데이터까지도 수행해야합니다.

다른 경로는 유니 코드에서 복잡한 표현식을 사용하여 문자와 가능한 모든 문자 조합의 목록을 만들고 엄청난 OR 집합으로 모두 검색하는 것입니다.

어느 쪽이든 목에 통증이 있습니다. 아시아 언어는 프로그래머에게 실질적인 문제가 될 수 있습니다. 모든 언어가 처리하기 어려울 정도로 작아 보이는 것 같습니다.

관련 문제