문자 그대로, '정적색인'과 '동적색인'이다.

서술하기에 앞서 이쪽을 참고하였다. (이곳을 비롯한 여러곳에서 배웠다는 표현이 더 정확하다.)

https://searchtool.tistory.com/11

 

검색 데이터 색인 방법론

01. 색인 종류 전체색인 (static index) : 정적색인이라고도 하며 색인을 시도하는 시점 이전의 데이터를 수집/색인한다. 증분색인 (dynamic index) : 동적색인 이라고도 하며 전체색인 완료 시점 부터 추�

searchtool.tistory.com

 

 

 

정적색인 = 전체색인 = static index

색인을 시도하는 시점 이전의 데이터를 수집/색인

만약 특정 운영환경에서 점검 등으로 새로운 데이터가 들어올 수 없는 상황일 경우, 별도의 증분색인없이 데이터를 색인할 수 있을 것이다.

 

동적색인 = 증분색인 = dynimic index

전체색인 완료 시점 이후에 추가된 데이터를 수집/색인

보통은 운영중이거나, 주기적으로 특정 데이터(로그 등)가 유입될 경우, 배치로 특정 시점의 데이터를 색인하는 것이라 이해된다.

 

메뉴얼 색인 = manual index

데이터의 PK 혹은 특정 고유값을 통한 데이터 수집/색인

이 경우에는 특정 document의 _version이 달라지지 않을까 싶다.

(동적색인의 경우에도 마찬가지일것 같다만)

 

 

static index

아주 간단하게, 특정 테이블(DB)에 있는 데이터를 색인할 경우, 해당 색인을 시작하기 이전 row 만큼 데이터를 수집하고 색인한다.

아마도 Elasticsearch의 logstash에서 이런 모양

(ex. select * from some_table)

 

 

dynamic index

사실 대부분의 운영환경이 이렇지 않을까 싶은데, 두 가지 방법이 있다고 한다.

1. 특정 날짜 (timestamp 등) 기준 수집/색인

2. CRUD 발생 시 기록 수집/색인 방법이 있다.

 

근데 지금보면, 내가 다니던 직장의 경우엔 두 가지 방법이 같이 쓰였던것 같다. (내가 구현하진 않았지만)

1. 데이터에 대해 CRUD 행위가 일어나면, 해당 데이터가 변경된 시간정보를 Update 한다.

2. 특정 시간간격만큼 배치로 마지막 색인 시점을 Tracking하여 해당 시점 이후에 변경된 데이터를 수집/색인한다.

 

 

여기서, 1에서 변경하는 값이 데이터의 변경시각이 아닌 PK를 어딘가(= Search용 Queue)에 기록한다면 메뉴얼 색인이 될 듯하다.

 

'개발 > Elasticsearch' 카테고리의 다른 글

Synonym Token Filter (동의어 처리)  (0) 2020.05.20
Analyzer 이해하기  (0) 2020.05.20
Mapping Parameters  (0) 2020.05.18
Elasticsearch APIs  (0) 2020.05.18
Node  (0) 2020.05.17

+ Recent posts