본문 바로가기

엘라스틱 서치

Spring Boot Jpa 네이티브 쿼리로 엘라스틱서치 쿼리 구현하기 0. 개요Spring Boot와 Jpa를 활용한 네이티브 쿼리로 엘라스틱 서치 쿼리를 구현해 보겠습니다.Spring Boot와 엘라스틱 서치를 연결하는 방법은 아래 글에 적혀 있습니다.스프링부트로 엘라스틱서치 쿼리 날리기그리고 이 글은 아래 글과 관련 있습니다.뉴스 데이터를 위한 엘라스틱 서치 쿼리 모음1. 연도별 키워드 Top1001.1 엘라스틱서치 쿼리{ "query": { "bool": { "must": [ { "match": { "대분류": "사회" } }, { .. 더보기
뉴스 데이터를 위한 엘라스틱 서치 쿼리 모음 뉴스 데이터를 저장하고, 쿼리로 조회한다.1. 인덱스 생성// PUT http://{ip}:{port}/hani-news-topic-index{ "settings": { "analysis": { "analyzer": { "keyword_extract_analyzer": { "type": "custom", "tokenizer": "keyword_extract_tokenizer", "filter": [ "keyword_extract_stop_filter", "ke.. 더보기
스프링부트로 엘라스틱서치 쿼리 날리기 0. 개요스프링부트로 엘라스틱서치에 접근해서 쿼리를 날려보겠습니다.프로젝트 구조는 아래와 같습니다.└─es│└─src └─main ├─java │ └─com │ └─example │ └─es_springboot │ │ EsSpringBootApplication.java │ │ │ ├─config │ │ AbstractElasticsearchConfiguration.java │ │ ElasticSearchConfig.java │ .. 더보기
ELK, Mysql, Kafka 구축 및 연동 0. 개요 ELK란 Elsaticsearch + Logstash + Kibana를 통합해서 부르는 말입니다. 이 글에서는 ELK, Mysql, Kafka를 구축해서 연동할 것입니다. 프로젝트 구조도는 아래와 같습니다. 아래는 ELK를 구축하기 위한 프로젝트 구조입니다. ES-springBoot:. └─es ├─docker-compose.yml │ ├─elasticsearch │ │ Dockerfile │ │ │ ├─config │ │ elasticsearch.yml │ │ │ └─settings │ ├─stop │ │ english.txt │ │ │ └─synonym │ english.txt │ ├─kibana │ │ Dockerfile │ │ │ └─config │ kibana.yml │ └─logst.. 더보기
스프링부트 테스트와 엘라스틱서치 테스트 컨테이너 0. 개요 Spring Boot Test에서 엘라스틱서치 테스트 컨테이너를 띄워 테스트 해 보겠습니다. nori도 사용할 것입니다. 1. 테스트 우선 테스트 엘라스틱 컨테이너를 띄워야 합니다. 이를 위해 의존성을 주입 받겠습니다. // build.gradle testImplementation("org.testcontainers:junit-jupiter:1.16.3") 테스트 파일 위치에 아래와 같이 만들겠습니다. 자세한 설명은 주석으로 달겠습니다. @TestConfiguration @EnableElasticsearchRepositories(basePackageClasses = UserSearchRepository.class) public class ElasticTest extends AbstractEla.. 더보기
엘라스틱서치 검색 Query DSL 0. 개요 엘라스틱서치는 검색을 위한 다양한 방법을 제공합니다. 그 중에서, 검색을 위한 쿼리 방법를 제공하는데 이를 Query DSL이라 합니다. 엘라스틱서치의 Query DSL은 모두 JSON 방식을 사용합니다. 이 글에서 사용하는 데이터는 아래와 같습니다. POST ksb/_bulk {"index":{"_id":1}} {"message":"ksb kkk", "age":20} {"index":{"_id":2}} {"message":"ksb sss kkk", "age":40} {"index":{"_id":3}} {"message":"ksb bbb sss kkk", "age":10} {"index":{"_id":4}} {"message":"test sss", "age":100} {"index":{"_id.. 더보기
엘라스틱서치 데이터 삽입, 조회, 수정, 삭제, _bulk API 1. 개요 엘라스틱서치에 데이터를 삽입, 수정, 삭제를 해 보도록 하겠습니다. 참고로, 엘라스틱서치의 모든 요청은 REST API를 사용합니다. 엘라스틱서치의 경우 버전마다 변경사항이 매우 큽니다. 때문에, 버전을 잘 확인해보시기 바랍니다. 💡 이 글은 7.0 ~ 8.X 사이의 버전을 타켓으로 하고 있습니다. 추가로, 제 엘라스틱서치의 버전은 8.7입니다. 엘라스틱 8.0이후 버전은 Security로 인해 모든 요청에 사용자 인증이 필요합니다. 때문에 저와 같이 Postman을 쓰시는 분들은 아래 그림과 같이 인증 셋팅이 필요합니다. 💡 자세한 인증 사항은 https://ksb-dev.tistory.com/309 에서 알 수 있습니다. 2. 삽입 엘라스틱서치에 데이터를 삽입하기 위해서는 PUT 요청으로 .. 더보기
엘라스틱서치 8.X 도커로 무작성 실행해보기 1. 개요 검색엔진으로 유명한 엘라스틱 서치(Elastic Search)를 도커로 실행해 볼 것입니다. 엘라스틱 서치 버전 8 부터 Security가 default로 설정되어 있기 때문에, 이전 버전과 달리 비밀번호를 설정해야 합니다. 이제부터 그 과정에 대해 설명하도록 하겠습니다. 💡 기본적으로 도커가 깔려있어야 합니다. 2. 실행하기 우선 엘라스틱 서치의 도커 이미지를 다운로드 받아야 합니다. 제가 다운로드 받은 버전은 가장 최신 버전인 8.7.0 입니다. docker pull docker.elastic.co/elasticsearch/elasticsearch:8.7.0 다운로드 받은 이미지를 실행하는 코드는 아래와 같습니다. # -p 9200:9200 -> 엘라스틱 서치에 접속하는 포트입니다. # -.. 더보기