본문 바로가기
IT/자연어처리

[Elasticsearch] 오픈소스 검색엔진 엘라스틱서치

by IT손흥민 2021. 12. 2.

엘라스틱서치 설치 및 사용법

아래 링크를 통해서 확인하시면 됩니다.

 

[ELK] 엘라스틱서치 다운로드 및 사용법 (1)

안녕하세요. 엘라스틱 검색엔진을 다운로드 및 사용 방법에 대해 설명해드리려고 합니다. ELK란? Elasticsearch + Logstash + Kibana의 앞글자를 따서 ELK라고 부릅니다 . 각각의 기능을 크게 말씀드리자면

a-thinker.tistory.com

 

 

1. 오픈소스란?

  • 누구나 자유롭게 코드나 그 코드를 통해 구현된 프로그램을 이용할 수 있음
    ex) selenium, beautifulSoup

2. 검색엔진이란?

  • 웹에서 정보를 수집해 검색 결과를 제공하는 프로그램. 결과로 제공되는 데이터 특성에 따라 구현 형태가 달라짐
    데이터베이서에서 불가능한 비정형 데이터를 색인하고 검색할 수 있다.
  • 수집기를 이용해 방대한 데이터를 수집하고 이를 다수의 검색엔진을 이용해 색인하고 검색결과를 UI로 제공
  • 시스템에 따라 관련도가 높은 문서를 검색 결과의 상위에 배추할 수 있을 뿐 아니라 가중치를 둬서 정확도를 높일 수 있음
  •  (정보를 수집하는)수집기
     (수집한 데이터를 저장하는)스토리지
     (수집한 데이터를 검색에 적절한 형태로 변환하는)색인기 : 의미있는 용어 추출, 역색인 구조로 데이터 저장
     (색인된 데이터에서 일치하는 문서를 찾는)검색기로 구성된다 : 질의와 문서가 일치하는지 검색 순위 알고리즘으로 판단

 

3. Elasticsearch이란?

  • DMBS 영역까지 넘볼 정도로 입지가 넓어지고 있지만 완전히 대체할 수 없다.
    가장 큰 이유는 데이터 저장 방식 때문.

    RDB: 행을 기반으로 데이터 저장
           수정과 삭제의 편의성과 속도 면에서 강점
           다양한 조건의 데이터를 검색하고 집계하는 데에는 구조적인 한계
    ES : 단어를 기반으로 데이터 저장
         특정 단어가 어디에 저장되어 있는지 이미 알고 있어 모든 도큐먼트를 검색할 필요가 없다.
         행 기반 저장 구조와는 달리 단어가 도큐먼트를 알고 있기 때문에 도큐먼트 개수와 상관없이 한 번의 조회
         데이터 특성상 수정과 삭제가 많은 경우 RDB와 엘라스틱 영역을 나누어 아키텍처링 하는 것이 필요가 RDB           와 공종하는 것이 매우 제한적인 상황에서 엘라스틱을 주로 사용해야 한다면 관계형 데이터 모델링 고려
  • 데이터 모델링 방법
    1)Parent-Child 모델링
    2)Nested 모델링
    3)Application Side Join 모델링
    4)Denormalization 모델링
  • 형태소 분석기 (nori)
  • 하나의 토크나이저와 두개의 토큰필터로 구성
    (nori_tokenizer, nori_part_of_speech, nori_readingform_)

  •  사용자 설정 사전과 불용어 처리를 위한 stoptags를 지원

  • 세종 말뭉치와 mecab-ko-dic사전을 압축된 형태로 사용, 사용자 사전 등록 가능
  • RESTful API를 이용함

 

댓글