ㄱ만 쳐도 ㄱ을 포함하고 있는 사용자 이름을 다 검색하게 되어있다.
그것도 빠른 시간내에..
문뜩 이것을 따라 만들고 싶은 욕망이 치 솟아서 저번에 배운 한글 초성 + 중성 + 종성으로
나눠 따라 해보기로 했다.
1. 테이블을
name
name_index 필드를 만들었다.
name 에는 홍길동이 들어가고
name_index 에는 ㅎㅗㅇㄱㅣㄹㄷㅗㅇ
이런식으로 초성중성조성으로 구분되어서 각각이 하나의 문자로 들어간다.
그러면 TextEdit box에서 정을 쳤을때
" ㅈㅓㅇ "
을 like 검색을 하면 정에 관한 데이터들이 쭈루룩 올라온다.
약 500건의 데이터로 테스트를 했는데
실제 DB 에서 가져오는 시간은 0.01초 걸렸다.
즉 10ms
많지 않는 내용의 값을 검색할때는 초성중성종성 을 넣은 란은 Like검색해서 가져오면
충분히 효율성이 있을 것이라고 생각한다.
물론 Server side의 입장을 다르게 될것이다
좀더 나은 효율성과 Perfomance 를 위해
Lucene같은 라이브러리를 이용해도 되고
아니면 데이터베이스를 이용해도 되겠다.
No comments:
Post a Comment