본문 바로가기

전체 글

(215)
[ElasticSearch - springboot] (Script) 여행지 제목과 매핑되는 정보 제공 위키 제목 == 여행지 제목과 매핑되는 정보 제공 이슈 # 기존 코드 GET scrap_wiki_1102/_search { "_source": ["attraction_name", "content_id", "wiki_title", "wiki_content"], "query": { "bool": { "must": [ { "script": { "script": { "source": "if (doc['attraction_name.keyword'].size() != 0 && doc['wiki_title.keyword'].size() != 0) { return doc['attraction_name.keyword'].value == doc['wiki_title.keyword'].value; } return false..
[ElasticSearch] Script 쿼리와 Must 쿼리 해당 쿼리가 헷갈려서 복습을 위해 글을 작성하였다. Script 쿼리 script 쿼리는 Elasticsearch 내에서 사용자 정의 스크립트를 통해 문서를 필터링하거나 스코어링하는 데 사용되는 쿼리다. 이 스크립트는 "Painless"라는 Elasticsearch에서 제공하는 스크립트 언어를 사용하여 작성될 수 있다. script 쿼리의 주요 특징: 유연성: 사용자는 문서 필드의 값을 기반으로 복잡한 조건을 사용하여 문서를 필터링하거나 스코어링 할 수 있다. 성능 문제: 스크립트 쿼리는 다른 일반적인 쿼리에 비해 비용이 많이 들 수 있다. 따라서 대용량의 데이터셋에서 스크립트를 사용할 때는 성능에 주의해야 한다. 보안 문제: 이전 버전의 Elasticsearch에서는 Groovy와 같은 다른 스크립트 ..
[ElasticSearch] NativeQuery 도저히 @Query를 사용해서 로우 쿼리를 사용할 수가 없다. 에러도 많이 나고, 지원하지도 않으며 검사 역시 힘들기 때문이다. https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#elasticsearch.misc.searchtemplates Spring Data Elasticsearch - Reference Documentation The Spring Data infrastructure provides hooks for modifying an entity before and after certain methods are invoked. Those so called EntityCallback instances prov..
[ElasticSearch] spring data elasticsearch Null 출력 이슈(Getter, Reflection) 이슈 : Getter와 리플렉션, 그리고 프록시(JPA와의 차이) Documnet 객체에 Getter를 붙이지 않을 경우 값이 반환되지 않는다. @Getter는 Lombok 라이브러리의 어노테이션이며, 이를 클래스 레벨에 붙이면 해당 클래스의 모든 필드에 대한 getter 메소드를 자동으로 생성해준다. 만약 @Getter 어노테이션이 없다면, 필드에 접근하는 getter 메소드가 생성되지 않아서 외부에서 해당 필드의 값을 읽을 수 없다..! 리플렉션을 사용할 수 없기 때문이다. Spring Data Elasticsearch는 리플렉션을 사용하여 도메인 객체의 필드 값을 읽어내는데, 이 과정에서 getter 메소드를 통해 필드의 값을 가져온다. @Getter가 없으면 해당 필드에 대한 getter 메소드가..
더 맵게 (Level2) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌..
짝지어 제거하기 (Level 2) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12973 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면, b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므..
기능개발(Level 2) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=java 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 ..
[카카오 인턴] 키패드 누르기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다..