본문 바로가기

좋아하는 것_매직IT/3.elasticsearch

0.ElasticSearch, 검색 시스템과 검색 엔진에 대한 정의를 알아보자.

반응형

검색 시스템이란 무엇일까?

  • 사용자가 원하는 검색어에 대한 결과를 제공하는 시스템을 말함
  • 주로 우리나라 사람은 네이버, 다음, 네이트, 줌을 이용함
  • 물론 개발자는, 당구니 구글... 그래서 구글(
    )의 주가가 승천(?) 하나보다...
  • 개인적인 생각은 네이트(
    )도 승천(?)하길 바라면서 정리해본다. ^^!
  • 그리고, SK 텔레콤(
    ) 의 주가도! 10배 가길! 반드시 갈거라고 믿는다!! 반드시! 사람일은 반드시 생각하는 대로 이루어질것! 
    • 프랑스 소설가, 앙드레 말로는 아래와 같이 이야기했다.
      • "오랫동안 꿈을 그리는 사람은 마침내 그 꿈을 닮아간다."

        • 영어로) Man who has had a dream for a long time will finally get looked like the dream.

    • 잠시 빠졌던, 삼천포(?)에서 돌아오자... ^^

  • 암튼, 검색은 삶을 살아가는데, 과거도, 현재도, 그리고 앞으로 다가올 미래도 반드시 필요한 존재가 될것.
    • 즉, 네이버 or 구글에서 제공하는 다양한 서비스는 일상에서 빼놓을 수 없는 서비스임.

그럼, 검색 시스템 관련 용어를 정리해보자.

  • 보통 우리는 크게, 아래와 같이 3가지 용어를 주로 사용한다.
    • 검색 서비스
    • 검색 시스템
    • 검색 엔진
  • 그럼, 검색 서비스에 대해서 알아보자.
    • 검색 엔진을 기반으로 구축한 검색 시스템을 활용해 검색결과를 서비스로 제공하는 것을 말함.
  • 그럼 검색 시스템에 대해서 알아보자.
    • 대용량 데이터를 기반으로 신뢰성 있는 검색 결과를 제공하기 위해 검색 엔진을 기반으로 구축된 시스템을 말함.
  • 마지막으로, 검색엔진이란 무엇일까?
    • 정보를 수집해 검색 결과를 제공하는 프로그램을 말함.
    • 즉, 개발자는 검색엔진에 대해서 반드시 필수 과목처럼 알아볼 필요가 있음.
    • 앞으로 차근차근 블로깅을 남길 엘라스틱서치(
      ) 는 바로 검색 엔진의 한 종류
    • 그외의 제가 알고 있는 오픈소스 검색엔진은,
      • 엘라스틱서치와 현존하는 양대산맥인, 아파치 솔라(Apache Solr) 가 있음.
      • 그럼 아파치솔라(Apache Solr) 는 무엇일까?
        • 루씬(Lucene) 을 기반으로 분산처리가 가능하도록 고안된 것으로 정리하면됨.
      • 참고페이지
        • https://lucene.apache.org/solr/
          • 즉, 아파치 솔라(Apache Solr)은 Apache Lucene ™을 기반으로하는 대중적이고 놀랍도록 빠른 오픈 소스 엔터프라이즈 검색 플랫폼.
      • 그럼, 아파치 루씬(Apache Lucene) 은 무엇일까?
        • 홈페이지에서는 아래와 같이 설명하고 있음.
        • Apache LuceneTM 프로젝트는 오픈 소스 검색 소프트웨어.
          • 해당 프로젝트는 SoleneTM 검색 서버뿐만 아니라 LuceneTM 코어라는 핵심 검색 라이브러리를 출시함.
        • 참고페이지

그럼, 검색 시스템의 구성요소에 대해서 알아보자.

  • 검색 시스템의 아래의 4가지 기본구조를 가지고 있음.
    • 하나, 수집기
      • 웸사이트, 블로그 등등 웹에서 필요한 정보를 수집하는 프로그램.
        • 보통, 크롤러(Crawler). 스파이더(Spider), 웜(Worms), 웹 로봇(Web Robot)등으로 불림.
      • 수집 대상
        • 보통, 웹에 존재하는 아래의 것들을 수집함
          • 파일
          • 데이터 베이스
          • 웹페이지
          • 기타등등
    • 둘, 색인기
      • 검색엔진이 수집한 정보에서 사용자 질의와 일치하는 정보를 찾으려면,
        • 수집된 데이터를 검색가능한 구조로 가공하고 저장해야함.
      • 즉, 해당 역할을 하는 것이 바로 색인기!
      • 그럼, 색인기의 역할은?
        • 다양한 형태소 분석기를 조합해 정보에서 의미가 있는 용어를 추출하고 검색에 유리한 구조로 데이터를 저장함.
    • 셋, 스토리지
      • 데이터베이스에서 데이터를 저장하는 물리적인 저장소.
        • 즉, 검색엔진은 색인한 데이터를 해당 스토리지에 저장함.
    • 넷, 검색기
      • 사용자의 질의내용을 입력받아 색인기에서 저장한 역색인 구조에서 일치하는 문자를 찾아 결과로 반환하는 것.
      • 검색기도 색인기와 마찬가지로 형태소 분석기를 이용해 사용자 질의에서 유의미한 용어를 추출해 검색함.
        • 즉, 사용하는 형태소 분석기에 따라 검색 품질이 차이가 나게됨.

결론

  • 이제까지, 검색 시스템에 대해서 알아보았음.
    • 검색 시스템은 사용자가 원하는 검색어에 대한 결과를 제공하는 시스템을 말함
  • 검색 엔진에는 현재 엘라스틱서치(ElasticSearch)와 아파치솔라(Apache Solr)가 양대산맥으로 경쟁하고 있음.
  • 검색 시스템의 구성요소는 수집기/스토리지/색인기/검색기로 구성됨.
  • 오늘도 검색시스템에 대한 지식 한가지 획득완료! 감사합니다.
300x250