본문 바로가기

ElasticSearch11

Java Client를 이용한 Elasticsearch 쿼리 Spring boot 에서 Java Client를 이용하여 Elasticsearch 쿼리를 작성해볼려고 한다. GPT에 물어봤는데도 이상한 답을 줘서 혼자 이것저것 해봤는데 이게 맞는 방법인지 잘 모르겠다. Elasticsearch 클러스터 구성은 다른 포스트에서 작성했으니 이미 클러스터가 있다는 가정하에 작성해 보겠다. 우선 의존성을 추가하자.implementation 'co.elastic.clients:elasticsearch-java:8.14.3'버전은 사용하고 있는 elasticsearch 버전에 맞춰 변경해야한다. Elasticsearch 8.0 버전 이상 부터는 java clinet의 사용이 권장된다. High level rest client 는 7.15 버전부터 deprecated로 지정되었.. 2025. 3. 29.
Elasticsearch API conventions Elasticsearch Java Client 문서의 번역입니다. GPT를 이용해 번역하였고 잘못된 부분이 있을수도 있습니다. 잘못된 부분은 댓글로 달아주시면 수정하겠습니다. 감사합니다.https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/package-structure.htmlJava API 클라이언트는 복잡한 요청을 더 쉽게 작성하고 복잡한 응답을 더 쉽게 처리할 수 있도록 하는 최신 코드 패턴을 사용하여 매우 일관된 코드 구조를 사용합니다. 아래 세센에서는 이에 대해 자세히 설명합니다.Package structure and namesapce clientsElasticsearch API 문서에서 볼 수 있듯이 Elas.. 2024. 10. 4.
Elasticsearch Getting started Elasticsearch Java Client 문서의 번역입니다. GPT를 이용해 번역하였고 잘못된 부분이 있을수도 있습니다. 잘못된 부분은 댓글로 달아주시면 수정하겠습니다. 감사합니다.https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/8.14/getting-started-java.html특징• 모든 Elasticsearch API에 대해 강한 타입의 요청과 응답을 제공합니다.• 모든 API의 블로킹(동기) 및 비동기 버전을 제공합니다.• 복잡한 중첩 구조를 생성할 때 간결하면서도 읽기 쉬운 코드를 작성할 수 있도록 유창한 빌더(fluent builder)와 함수형 패턴을 사용합니다.• Jackson이나 JSON-B 구현체와 같은 .. 2024. 10. 2.
엘라스틱서치 클러스터 구성 엘라스틱서치를 공부하고 클러스터를 구성해 봤다. 책을 참고하며 진행하였는데 쉽지 않았다.1. 노드 설정과 노드 역할클러스터 구성 전 엘라스틱서치의 노드 역할에 대해 알아보자.마스터 후보 : 노드의 역할에 master를 지정하면 해당 노드는 마스터 후보 노드가 된다. 마스터 후보 노드 중 선거를 통해 마스터 노드가 선출된다.클러스터 상태 관리 : 클러스터의 상태(노드 추가/제거, 인덱스 생성/삭제 등)를 관리인덱스 생성 및 삭제 : 인덱스 생성 및 삭제 담당샤드 할당 :샤드를 클러스터 내 데이터 노드에 할당데이터 노드 : 실제 데이터를 들고 있는 노드다. CRUD, 검색, 집계와 같이 데이터와 관련된 작업을 수행한다.데이터 저장 : 실제 데이터(문서)를 저장, 샤드를 보유CRUD 작업 : 데이터 노드는 문.. 2024. 7. 25.
엘라스틱서치 데이터 다루기 part 4 집계 4.1 집계 기본집계의 대상을 추려낼 검색 조건을 검색 API에 담은 뒤 집계 조건을 추가해서 호출한다. GET kibana_sample_data_ecommerce/_search{  "size": 0,  "query": {    "term": {      "currency": {        "value": "EUR"      }    }  },  "aggs": {    "sum-test": {      "sum": {        "field": "taxless_total_price"      }    }  }}size를 0으로 하면 검색에 매칭된 문서가 무엇인지 받을 수 없다. 하지만 이와 상관없이 검색 조건에 매치되는 모든 문서는 집계 작업에 사용된다. 각 샤드에서 수행한 검색 결과에서 상위 문서의.. 2024. 7. 22.
엘라스틱서치 데이터 다루기 part 3 검색 3. 검색 API이번 포스트에서는 주요 검색 쿼리, 쿼리 문맥과 필터 문맥, 검색 결과 정렬, 페이지네이션에 대해 작성한다.3.1 검색 대상 지정GET [인덱스 이름]/_searchPOST [인덱스 이름]/_searchGET _searchPOST _searchGET과 POST 중 무엇을 사용해도 동작은 동일하다. 인덱스 이름을 지정하지 않으면 전체 인덱스에 대해 검색한다. 인덱스 이름을 지정할 때는 와일드카드 문자(*) 를 사용할 수 있따. 콤마를 이용해 검색 대상을 여럿 지정 가능하다.ex) GET my_index*,mapping_test/_search3.2 쿼리 DSL 검색과 쿼리 문자열 검색요청 본문에 엘라스틱서치 전용 쿼리 DSL을 기술하여 검색하는 방법과 요청 주소줄에 q라는 매개변수를 넣고 그.. 2024. 7. 18.