한글 입력 과정의 초중종성 완결과정 검색하기


네이버 검색창 한글 자동완성 같은 것 있쟎아요.

'신발' 이렇게 치면 'ㅅ', '시', '신', '신ㅂ', '신바', '신발' 이런 과정에서 자동완성으로 추천 검색어를 노출해 주고 싶거든요.

현재 검색엔진을 elasticsearch를 쓰고 있어서, 가능하다면 이 환경에서 쓸 수 있는 방법이 있으면 더 좋을 것 같구요. 한글 타이핑 초중종성 완결 되는 과정을 토큰으로 뱉어주는 elastic search 토큰나이저가 혹시 있을까요? 만들어서 써야 할까요?

공개된 소스가 있으면 더 좋겠지만, 공개된 소스가 없다면 구현의 접근 방법, 조언을 듣고 싶습니다.

  • 2016년 04월 06일에 작성됨

조회수 342


1 답변


좋아요
1
싫어요
채택취소하기

elastic search가 아니고 DB를 사용한다면 다음과 같이 처리할 수 있을 것 같습니다.

한글을 자소로 분리하여 별도 컬럼으로 저장한 후 LIKE 검색으로 처리하는 방식입니다. 예를 들어 '신발'의 경우 'ㅅㅣㄴㅂㅏㄹ' 을 저장해놓고 검색창에 들어온 글자를 분리해서 'ㅅ'이 입력되면 'ㅅ%'로 검색, '시'가 입력되면 'ㅅㅣ%'로 검색하면 원하는 결과가 나올 것 같습니다.

한글 자소분리는 다음을 참고하시기 바랍니다.

http://warmz.tistory.com/entry/%ED%95%9C%EA%B8%80%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C-%EC%B4%88%EC%84%B1-%EC%A4%91%EC%84%B1-%EC%A2%85%EC%84%B1-%EB%B6%84%EB%A6%AC

  • 2016년 04월 06일에 작성됨
    Polyglot Programmer

  • 감사합니다_(..)_ 공부해서 나머지 부분 구현 잘 해보겠습니다~!     n42.paul   2016.4.6 15:16     
  • 저는 자소분리한 결과를 es에 필드 하나더 파서 같이 저장해서 ES에서 호출해서 결과를 노출시키고있습니다. 자소필드 저장되는 데이터는 영께서 자세히 설명해주신바와 같습니다.    Kim Seong Su   2016.4.7 16:38     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close