ElasticSearch 정리(2)

jihunnit·2024년 11월 7일
0

ElasticSearch

목록 보기
2/3

색인(indexing)

  • 문서를 분석하고 저장하는 과정

간단한 색인 과정

  • 인덱스 존재 여부 판단 (없으면 생성)
  • 매핑 정보 존재 여부 판단 (없으면 동적매핑)
  • 매핑 올바른지 판단(type등 문제 있을경우 에러 발생)
  • inverted index 생성
  • 프라이머리 샤드에 저장
  • 레플리카 샤드에 복사

색인 성능과 샤드 갯수

  • 색인 성능을 위해서는 클러스터로서의 이점을 살리고 있는지 확인
  • 클러스터의 이점을 살리기 위해서는 적절한 노드 갯수, 성능 및 샤드 갯수 중요
  • 처음부터 완벽하게 샤드를 배치할 수는 없음
    • 점차 최적화해야됨
  • 샤드 갯수를 최적화한 후, 노드에 대한 Scale-up & Scale-out

inverted index : 문자열을 분석한 결과를 저장하고 있는 구조체


간단한 검색 과정

  • 검색어 분석 (analyzer 적용해서 토큰 생성)
  • inverted index 검색 (생성된 토큰을 inverted index에서 검색)
  • 검색 결과 표시

Analyzer의 토큰 생성 과정

  • 문자열 입력
  • character filter : 특수문자 제거 등 필터링 과정
  • tokenizer : 공백 등 특정 기준을 바탕으로 tokenize
  • token filter : 대소문자 처리 등 추가 필터링

주의 사항

  • 색인 : primary shard에서만 가능
  • 검색 : primary & replica 둘 다 가능

text와 keyword

  • text : 전문 검색(Full-text search)을 위해 토큰 생성
    • ex) "Hello world" 에 대해 "Hello", "World"로 두 개 토큰 생성
  • keyword : Exact Matching
    • ex) "Hello world" 에 대해 "Hello world"라는 하나의 토큰 생성
    • 쪼개는 과정이 없어 색인 속도가 빠름

문자열 필드는 동적 매핑되면 keyword, text 타입 두 개 모두 생성

profile
인간은 노력하는 한 방황한다

0개의 댓글