drcarter의 DevLog

sphinx search engine을 사용해보면서...
어쨌든... 나는 한국인이니 한글 검색을 해야 겠다는 사명으로 ㅋㅋㅋ
한글 검색이 가능하도록 해보았다...
음... 지금까지 해본 방법으로 두가지 방법이 생겼음...

1. DBMS = UTF8, sphinx.conf 설정 utf8...
 - DBMS 설정을 UTF8으로 해둔다... euckr 방법으로도 할 수 있지만... euckr방법으로는 표현할 수 있는 한글의 갯수라든지, 초/중/종성으로 나누는 방법이 없다! ㅜㅜ//
 - DMBS는 mysql을 사용하였고, MySQL 설정파일에서 모든 character_set 설정을 utf8으로 해두어야 함.
 - DBMS설정이 UTF8으로 되어 있고, sphinx.conf 설정 파일에서도 charset_type을 utf8으로 해둔다.
 - charset_table 에다가 이곳에 가셔서 unicode를 넣어주면 됨... 한줄에 많은걸 넣으면 오류나니까... 적당히 뉴라인을 두어서 하시는것이 좋음 ㅋㅋ
 - 머 이러면... indexing 하고~ 검색하면 됨!!
 - 음... 나는 윈도우에서 사용하기 때문에... Visual Studio 2003에서... Windows Console에서는 UTF8으로 인코딩된 한글은 표현을 못함!! ㅜㅜ// 정말 이것때문에 왜 이상하게 나오고~ 한글이 검색이 왜~ 안되는지 한참...이상하게 생각음 ㅜㅜ/ ㅋ
 - API에 보면 MultiByteToWideChar 와 WideCharToMultiByte... 2개의 API가 있음... 이것을 잘 활용한다면 해결할 수 있다는거~ ㅎㅎㅎ
 - 머 컴파일 하고~ 사용하면 됨!!!


2. DBMS = euckr, sphinx.conf 설정 sbcs
 - DBMS의 character_set 설정을 모두 euckr로 설정한다. 가장 보편화된 인코딩 방법이긴 하지만, 개인적인 생각으론 요즘 UTF8으로 많이 바뀌고 있는 추세~
 - sphinx.conf 설정을 sbcs(single byte character set)으로 한다. single byte... 캐릭터 하나당 1바이트를 사용한다는 얘기인데. euckr로 한글을 사용하면 2바이트를 사용한다는건 모든 사람들이 알고 있는 사실! 설정하면서 설마 sbcs로 설정하고 될까 했는데. 된다! ㅎㅎ 단!!! sphinx가 오픈소스이기떄문에 lib 안에 있는 내용을 약간 수정해야 한다는 점이 있음! 이유?? spinx는 오픈소스로... 왜국에서 개발했으니 이사람들이 double byte character set을 생각을 안한듯 ㅜㅜ///
 - windows console 에서는 코드페이지 cp949를 사용하기때문에 euck로 인코딩된 한글은 잘 나온다는거~ ㅎ
 - 머... 이러고 indexing 하고 search 하면 끝!!!



 지금까지 sphinx 를 사용해보면서 indexing 하는 중간은 자료가 많은수록 속도가 느려지긴 하지만
검색은.... 매우 빠르다는거~ !!! 놀랬음 ㅋㅋㅋ
여기까지 사용할 수 있도록 도와주신 heechul님이 도움도 있으셨고~ [ 감사합니다!  :-) ]
나도 sphinx의 매력에 빠져서는 요즘... 이 오픈소스를 어떻게 고쳐서 또 사용해볼까 고민중입니다~ ㅎㅎㅎ