개발/Solr

[Solr] 검색서버 운영 도전...

유경파 2016. 6. 9. 11:16

검색이란 분야는 아는게 하나도 없어서 단순한 호기심으로 회사 쇼핑몰에 붙어있는 검색엔진을 보다가 우연한 기회에 검색 쿼리와 필드를 바꿔보게 되었고, 게다가 톰캣으로 돌아가고 있어서 상태 체크도 하다보니 어쩌다가 검색 서비스 운영도 임시로 맡게 되었다.



Solr라는게 그냥 다운 받은 후에 DB 연결하고 Indexing 할 테이블의 필드를 정하고, 한글 검색을 해야하니 형태소 분석기 같은거 다운받고 Indexing 주기 정하고 톰캣에 올려 돌리니 그냥 끝났다. 물론 무식하면 용감하다고 디테일한 부분들은 많은 공부가 필요하겠지만 일단 그 설치와 운영의 간단함에 정말 놀랐다. DB를 연결해도 되고, XML파일을 그냥 통째로 읽어들여 사용할 수도 있으며, 각종 데이터를 다양한 방법으로 가져올 수 있으니 기가 막혔다.


더 좋은건 한글 형태소 분석기도 쉽게 구할 수 있어서 검색 서비스와 같이 배포하면 바로 적용이 된다.

admin UI도 기똥차게 만들어져 있어서 인덱싱 중일때 상황을 바로 파악할 수 있고, 설정파일도 웹브라우저로 바로 수정할 수 있으며 (문법 체크도 해준다 ㅡㅡ;;) 기존 데이터 지우고 다시 Indexing을 한다던지, query를 직접 던져본다던지 별걸 다 할 수 있다.

물론 웹서비스 요청으로도 가능하다...


이렇게 간단하게 운영방법을 숙지한 후 매뉴얼을 들고 파기 시작했다.

잘 쓰지는 않겠지만 알면 좋을 Indexing을 위한 각종 옵션들이라던지, Solr과 Lucene에 대한 이해 등등 알면 알수록 재미있었다.



중소규모의 검색 서비스를 구축함에 있어서 제일 중요한 건


인덱싱할 필드들의 선정과 옵션 부여,


검색을 요청할 때 가중치를 부여한 쿼리 사용,


데이터 관리 정도인 것 같다.



요즘은 진짜 개발을 위한 IDE나 Framework 등의 오픈 소스가 너무 잘 나와서 어떻게 사용하는지만 알면 크게 어렵지 않게 필요한 기능들을 추가할 수 있는 시대가 온 것 같다. 예전에는 어떤 기능이 필요하면 자신만의 라이브러리를 만들어서 쓸 수 있어야 하고 이게 실력이 느는거다 라고 배웠는데 지금은 그거해서 뭐하게? 그냥 찾아서 쓰는게 훨씬 빠르고 안정적인데 그걸 왜 만들어? 이런 생각이 든다.


이렇게 아낀 시간들은 서비스 구성이나 비즈니스에 더 투자를 해야하지 않을까?

여튼 시간이 날 때마다 Solr 매뉴얼도 좀 더 보고, elastic search 도 좀 봐야겠다.