1. 어떤 HttpClient을 사용할것인가? Spring을 이용한 Application을 개발할 때, 다른 서버와의 HTTP 통신이 필요할 경우가 많다. 이때 어떤 HttpClient를 사용할지 결정하는 것은 중요한 선택입니다. 다양한 HttpClient 옵션이 있지만, 각 방식마다 장단점이 있다. 여기서는 대표적인 HttpClient들...
[엘라스틱서치 바이블] 8. 엘라스틱서치의 내부 동작 상세 ES의 기본 구조와 핵심 동작 양상, 주요 기능, 서비스 환경을 구축하고 운영하며 장애에 대응하는 방법을 학습한것만으로도 ES를 활용한 개발에 큰 어려움이 없을것이다. 다만, 고도화가 필요하다면, 내부 동작을 구체적으로 이해하는것이 중요하다. 8.1 엘라스틱서치의 데이터 분산 처리...
[엘라스틱서치 바이블] 5. 서비스 환경에 클러스터 구성 5.1 운영 환경을 위한 설정과 클러스터 구성 5.1.1 노드 설정과 노드 역할 ES 클러스터 내에서 각 노드가 수행하는 역할의 종류에 대해 알아보자 노드 역할 클러스터 구성시 반드시 노드에 역할을 지정해야 한다. 지정된 역할에 따라 노드가 클러스터 내에서 어떤 작업을 담당할지...
4. 데이터 다루기 -3(ES Client 라이브러리) 4.5 서비스 코드에서 엘라스틱서치 클라이언트 이용 지금까지 배웠던 REST API를 호출해서 ES에 작업을 요청할수도 있겠으나, 이런 방식보다는 ES에서 공식적으로 제공하는 Client 라이브러리를 활용하면 좀 더 간편하게 코드를 작성할 수 있고, 유지보수도 더 쉽다. Java, Jav...
4. 데이터 다루기 -2 4.4 집계 ES는 검색을 수행한 뒤에 그 결과를 집계(aggregation)하는 다양한 방법을 제공한다. 4.4.1 집계 기본 집계는 검색의 연장선 집계의 대상을 추려낼 검색 조건을 검색 API에 담은 뒤 집계 조건을 추가해서 호출한다. sum ### sum GET /kibana_sample_data...
4. 데이터 다루기 -1 4.1 단건 문서 API 문서(document) API는 인덱스에 문서를 색인, 조회, 업데이트, 삭제하는 API이다. 상세한 내용을 알아보도록 하자. 4.1.1 색인 API 색인 API는 문서 단건을 색인한다. PUT [인덱스 이름]/_doc/[_id값] POST [인덱스 이름]/_doc PUT [인덱스 ...
3. 인덱스 설계 -2 3.3 애널라이저와 토크나이저 이전장을 통해 text 필드의 데이터는 애널라이저를 통해 분석돼 여러 텀으로 쪼개져 색인된다는것을 배웠다. 구체적으로 애널라이저가 동작하는 과정과 ES가 자체적으로 제공하는 빌트인 애널라이저를 사용해보고 특정 상황에 맞는 커스텀 애널라이저를 적용하는 방법을 살펴보자. 애널라이저는 0개...
3. 인덱스 설계 - 1 ES의 인덱스는 아주 세부적인 부분까지 설정으로 제어할 수 있다. 이 설정에 따라 동작과 특성이 매우 달라지므로 인덱스 설계에 신경써야 한다. 맵핑, 필드 타입, 애널라이저 등 핵심적인 설정을 학습해 ES 인덱스에 대한 이해도를 높여보자. 3.1 인덱스 설정 인덱스 생성시 동작에 관한 설정을 지정할 수 있...
2. 엘라스틱 서치 기본 동작과 구조 엘라스틱서치의 구조를 어느정도 먼저 이해한 상태에서 상세 내용을 학습해야 전체 학습에 깊이가 생긴다. 이번 장을 마치고 나면 엘라스틱서치가 어떻게 동작하는지 큰 그림을 머릿속에 그릴수 있을것이다. 2.1 엘라스틱서치 기본 동작 빠르게 둘러보기 실습 과정에서는 기본적으로 REST API를 호출해 진...
1. 엘라스틱 서치 소개 Elasticsearch는 2010년 2월 샤이 베논이 아파치의 루씬 라이브러리를 기반으로 만든 분산 검색 엔진 2013년에 데이터를 손쉽게 시각화하는 Kibana와 색인 데이터 수집&변환을 하는 Logstash 프로젝트에 엘라스틱에 합류 엘라스틱서치는 현재 검색 엔진 분야에서 가장 각광받고 있는 시스템이다...