엘라스틱서치 검색 방법 엘라스틱 서치에서 제공하는 검색 API는 질의(Query)를 기반으로 동작한다. 1) URI 검색 2) Request Body 검색 URI 검색은 단순히 GET 방식처럼 URI 표기법을 사용하는 것이고, 2)번의 Request Body는 RESTFul API를 이용하여 Body에 조건을 표기하여 사용하는 방법이다. URI 검색 URI를 이용하는 방식은 HTTP GET 요청을 활용하는 방식이다. 'key=Value' 형식의 파라미터로 검색하고자 하는 검색 조건을 넣는다. 따라서 검색 조건에 따라 URI의 파라미터가 변경될 것이고, URI 표기법에 맞게 호출된 조건에 따라 결과를 내려준다. 하지만 파라미터로 표현할 수 있는 표현의 한계가 있기 때문에 Request Body 검색 방법을..
매핑 엘라스틱서치에서 매핑이란, 색인할때 문서의 데이터 유형에 따라 필드에 적절한 데이터 타입을 지정하는 것을 말한다. 매핑은 색인될 문서의 데이터 모델링이라고도 할 수 있다. 엘라스틱서치는 기본적으로 명시적으로 필드를 정의하지 않아도 데이터 유형에 따라 필드의 데이터 타입에 대한 매핑 정보가 자동으로 생성된다. 하지만 좀더 정확한 검색을 위해서는 수동적으로 매핑하여 필드에 적합한 데이터 타입으로 정의하는 것이 좋다. 색인 : 역색인 파일을 만드는 것 매핑의 의미 > 색인시 데이터가 어디에 어떻게 저장될지를 결정하는 설정이다. > 인덱스에 추가되는 각 데이터 타입을 구체적으로 정의하는 일이다. # 문서 (1) { "key" : "12345", "value" : "abced" } # 문서 (2) { "ke..
엘라스틱서치의 용어 1) 인덱스 엘라스틱서치는 하나의 인덱스에 하나의 타입만이 구성 가능하다. 인덱스(index)는 데이터 저장 공간으로, 하나의 노드에는 여러 개의 인덱스를 생성할 수 있다. 하나의 인덱스는 여러 노드에 분산 저장되어 관리된다. 엘라스틱서치의 인덱스 생성시 기본 구조 5개의 프라이머리(Primary) 샤드 + 1개의 레플리카(Replica) 샤드 2) 샤드 색인된 문서는 하나의 인덱스에 저장되고, 인덱스 내부에 색인된 데이터는 여러개의 파티션으로 나뉘어 구성된다. 이때의 파티션을 '샤드(Shard)'라고 한다. 3) 타입 인덱스의 논리적 구조이다. 데이터베이스에서 이와 같은 개념으로는 테이블이 있다. 4) 문서 데이터가 저장되는 최소 단위이다. 데이터베이스에서 이와 같은 개념으로는 행이..
들어가며 엘라스틱 서치는 검색 엔진이다. 여기서 검색 엔진(search engine)이란, 웹에서 정보를 수집하여 검색 결과를 제공하는 프로그램이다. 우리가 많이 사용하고있는 데이터베이스는 비정형 데이터를 색인하고 검색하는 것이 불가능하다. 비정형 데이터 : 정해진 규칙이 없는 데이터; 예) 텍스트, 음성, 영상 등 색인 : 키워드를 찾아보기 쉽도록 정렬한 목록 하지만 엘라스틱서치에서는 비정형 데이터를 색인하고 검색하는 것이 가능하다. 또한 엘라스틱서치의 장점 중의 하나인 역색인 구조을 사용함으로써 빠른 검색이 가능하다. 역색인 : 키워드를 통해 문서를 찾는 방식 관계형 데이터베이스와의 비교 엘라스틱서치 관계형 데이터베이스 인덱스 데이터베이스 샤드 파티션 타입 테이블 문서 행 필드 열 매핑 스키마 Que..