[Elasticsearch] 데이터를 색인하여 검색되는 과정

HI·2022년 5월 13일
0

elasticseasrch의 데이터를 색인하여 검색되는 과정

  1. 색인애플리케이션을 통해 새로운 데이터가 elasticsearch의 분석을 통해 terms가 된다.
  2. 이렇게 파생된 terms는 역색인에 넣어서 중요한 것들을 빠르게 관련된 것들을 검색할 수 있게 한다.
  3. 검색애플리케이션으로 검색키워드가 들어오면 해당 키워드도 분석되어 terms가 된다.
  4. 해당 terms들과 맞는 elasticsesarch의 역색인 자료구조에 있는 terms를 찾아주어 결과로 보여준다.

segment로 보는 색인 과정

데이터가 elasticseasrch로 들어오면 이것을 메모리에 모아두고 새로운 새그먼트를 디스크에 기록하여 검색을 리프레쉬 한다. 이렇게 리프레쉬 되어 검색 가능한 세그먼트가 만들어지게 된다.

 "refresh_interval" : "60s",

refresh_interval 로 segment가 리프레쉬되는 시간을 설정할 수 있다.
이를 "1s"로 했을때 실시간 검색이 되는 것이다.


데이터 업데이트 색인

segment는 불면으 성질을 지니기 때문에 데이터가 업데이트되면 실제로는 삭제되었다고 마크만 하고 새로운 데이터를 가르킨다.
그리고 마크된 데이터는 디스크에 남아있다가 백그라운드에서 주기적으로 또는 특정 임계치를 넘기면 더이상 필요 없는 마크된 데이터들을 정리하고 새로운 segment로 병합한 후 이때 비로소 segment가 삭제된다.
이를 segment merge(세그먼트 병합)이라고 한다.

[참고] https://12bme.tistory.com/471

profile
hi

0개의 댓글