반응형
인덱스 (Index) 란?
문서가 저장되는 논리적인 공간이다.
Es 에서 Index 는 RDBMS 에서 Database 와 대응되는 개념이라고 보면 된다.
Es 의 용어와 RDBMS 의 용어를 비교해보면 아래의 표와 같이 이해할 수 있다.
Elasticsearch | RDBMS |
Index | Database |
Mapping | Schema |
Document | Row |
인덱스 설계 방법
인덱스를 설계하는 것은 ES 를 사용하기 위해 고려해야 하는 첫 단계이다.
인덱스 설계를 어떤 방향으로 하느냐에 따라서 문서의 구조 및 검색 쿼리 자체가 달라지게 된다.
예를들어 아래의 그림을 보자.
인덱스를 설계할때 movie 인덱스를 생성해서 관리해도 되고
각 장르마다 인덱스를 설계해서 관리해도 된다.
그럼 인덱스의 설계에 따라 어떤식으로 문서와 검색쿼리가 달라지는 지 확인해보자.
첫번째로 movie 단일 인덱스로 구성했을 때의 색인,검색 방법이다.
두번째로 장르별로 인덱스를 구분 했을 때의 색인,검색 방법이다.
인덱스 하나에서 모든 데이터 처리를 해주는 것과
여러 인덱스를 나눠서 데이터 처리를 해주는 방법중에
어느것이 더 좋은 방법이라고 단정지을 순 없다.
하나의 인덱스를 사용할 때에는
관리해야 할 인덱스의 수가 적어 관리 리소스가 적게 발생한다는 장점이 있지만,
쿼리와 문서의 구조가 복잡해 질 수 있다.
또한 여러개의 인덱스로 나눠서 사용하는 경우에는
각각의 경우 최적화된 쿼리와 문서 구조를 사용할 수 있다는 장점이 있지만,
관리해야 할 인덱스의 수가 많아
관리 리소스가 많이 발생할 수 있다.
즉 인덱스는 사용 패턴과 문서의 특성에 따라 설계하는 것이 좋다.
반응형