클러스터 상태 확인 ElasticSearch는 cat API 를 통해 클러스터, 노드, 샤드의 상태 등 다양한 정보를 확인할 수 있도록 인터페이스를 제공한다. _cat/heath API 를 통해 클러스터의 상태를 확인할 수 있다. 상태 확인 요청 curl http://localhost:9200/_cat/health?v cat API는 v 옵션 파라미터를 제공하는데, v 옵션 파라미터를 사용할 경우, 응답으로 제공되는 값들이 어떤 의미를 갖는지 헤더와 함께 제공된다. 요청 결과 // v 옵션을 제거한 상태 1614675511 08:58:31 ncucu yellow 1 1 26 26 0 0 25 0 - 51.0% // v 옵션을 추가한 상태 epoch timestamp cluster status node.t..
서론 엘라스틱서치는 인덱스에 저장된 문서를 검색할 수 있도록 다양한 검색 기능 을 제공 한다. 색인 시점 뿐 아니라 검색 시점에도 분석기 를 사용하며 점수 (score) 를 매겨 순서를 적용한다. 검색 질의 표현방식 검색 API 는 기본적으로 질의 (Query) 를 기반으로 동작한다. 검색 질의는 URI 검색 과 Request Body 검색 두 가지로 표현할 수 있다. URI 검색 HTTP GET 요청을 활용하는 방식으로 쿼리스트링 을 활용해 파라메터를 전달한다. Request Body 방식에 비해 단순하고 사용하기 편리하지만, 복잡한 질의문을 입력이 제한된다. // 요청 curl -XGET http://localhost:9200/teams/_search?q=creator:ncucu // 결과 { "to..
서론 엘라스틱서치에서는 색인할 때 문서의 데이터 유형에 따라 필드에 적절한 데이터 타입을 지정해야 하는데 이런 과정을 매핑 이라고 한다. 사전 매핑을 하지 않으면 엘라스틱서치가 자동으로 필드 생성 및 타입까지 결정하는데 이를 스키마리스 기능 이라고 한다. 스키마리스 기능은 성능과 직접적인 관련이 있기 때문에 사용하지 않을 것을 권장한다. 매핑 API 이해하기 매핑은 데이터베이스의 스키마에 대응하는 개념이다. 필드의 속성에는 데이터 타입과 메타 데이터가 포함 된다. 이를 통해 어떻게 역색인으로 변환되는지 상세하게 정의할 수 있다. 매핑 정보 설정시 고려해야 할 사항은 세가지가 있으며 다음과 같다. 문자열을 분석할 것인가 ? _source에 어떤 필드를 정의할 것인가? 날짜 필드를 가지는 필드는 무엇인가? ..
서론 엘라스틱서치에서 사용하는 기본용어들을 살펴보기, 제공하는 주요 API들을 살펴본다. 엘라스틱서치를 구성하는 개념 엘라스틱서치의 데이터는 인덱스, 타입, 문서, 필드 구조로 되어 있다. 인덱스 인덱스 (Index) 는 데이터 저장공간이다. 하나의 타입만을 가지며, 하나의 물리적인 노드에 여러 개의 논리적인 인덱스 생성이 가능하다. 인덱스는 생성시 기본적으로 5개의 프라이머리 샤드와 1개의 레플리카 세트를 생성한다. 인덱스는 데이터 검색시에 활용되며, 이름은 모두 소문자 여야 한다. RESTful API 를 제공하기 때문에, 이를 통한 데이터 조작이 가능하며 인덱스가 없는 상태에서 데이터가 추가될 경우 자동적으로 인덱스를 생성한다. 샤딩 (Sharding) 데이터를 분산해서 저장하는 방법이다. Elas..