Tuesday, August 19, 2014

이름 자동완성 리스트

내 안드로이드폰 주소록 검색을 보게 되면
ㄱ만 쳐도 ㄱ을 포함하고 있는 사용자 이름을 다 검색하게 되어있다.
그것도 빠른 시간내에..

문뜩 이것을 따라 만들고 싶은 욕망이 치 솟아서 저번에 배운 한글 초성 + 중성 + 종성으로
나눠 따라 해보기로 했다.

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