Inverted Index
역 인덱스.
출처 : 참조블로그
일반적으로 오라클이나 RDBMS 같은 관계형 DB 에서는 데이터를 테이블 구조로 저장하게 되는데, 테이블에서 특정컬럼에 fox
라는 단어가 포함된 행들을 가져온다고 하면 컬럼을 한 줄 씩 찾아 내려가면서 fox
가 있으면 가져오고 없으면 넘어가는식으로 가져오게 된다.
- DB
like
검색을 사용하기 때문에 데이터가 늘어날수록 검색해야 할 대상이 늘어남- 시간이 오래 걸린다.
- row 안에 내용을 모두 읽어야 하기 때문에, 기본적으로 속도가 느리다.
- ES
- 데이터를 저장할 때 역 인덱스(inverted index) 구조를 만들어 저장
역인덱스 저장 방식
- 역 인덱스는 책의 맨 뒤에 있는 주요 키워드에 대한 내용이 몇 페이지에 있는지 볼 수 있는 찾아보기 페이지에 비유할 수 있다.
- ES 에서 추출된 각 키워드를 텀(Term) 이라고 부른다.
- 역 인덱스가 있으면
fox
를 포함하고 있는 도큐먼트들의 id를 바로 얻어올 수 있다.
- ES 는 데이터가 늘어나도 찾아가야 할 행이 늘어나는것이 아니라, 역 인덱스가 가리키는 id의 배열값이 추가되는 것 뿐
- 큰 속도 저하 없이 빠른 속도로 검색이 가능하다
역 인덱스는 데이터가 저장되는 과정에서 만들기 때문에 ES 는 데이터를 입력할 때 저장이 아닌 색인을 한다고 표현한다.
댓글남기기