분류 전체보기 1341

Ch03. 데이터 모델링 - 메타 필드

메타 필드는 메타 데이터를 저장하는 특수 목적의 필드로써, 이를 이용하면 검색 시 문서를 다양한 형태로 제어하는 것이 가능하다._index 메타 필드_index 메타 필드는 해당 문서가 속한 인덱스의 이름을 담고 있으며 이를 이용해 검색된 문서의 인덱스 명과 해당 인덱스에 몇 개의 문서가 있는지 알 수 있다.POST movie_search/_search{ "size": 0, "aggs": { "indices": { "terms": { "field": "_index", "size": 10 } } }}결과... 생략"buckets": [ { "key": "m..

Elastic Search 2025.09.07

Ch03. 데이터 모델링 - 매핑 API

매핑은 색인 시, 데이터가 어디에 저장될지를 결정하는 설정이다. 데이터 베이스에서의 스키마에 대응되는 개념으로 인덱스에 추가되는 각 데이터 타입을 구체적으로 정의하는 것이다.엘라스틱 서치는 기본적으로 스키마리스이기 때문에 명시적으로 필드를 정의하지 않아도 데이터 유형에 따라 필드 데이터 타입에 대한 매핑 정보가 자동으로 생성된다. 단, 자동 매핑 방식은 언뜻 편리해 보이지만 실수로 잘못된 타입으로 지정될 경우 수정할 방법이 없기 때문에 각별하게 사용해야 한다.매핑 설정 시 고려해야 할 사항문자열을 분석할 것인가?_source에 어떤 필드를 정의할 것인가?날짜 필드를 가지는 필드는 무엇인가?매핑에 정의되지 않고 유입되는 필드는 어떻게 처리할 것인가매핑 인덱스 만들기PUT movie_search{ "s..

Elastic Search 2025.09.07

Ch02. 엘라스틱서치 살펴보기 - 주요 API

엘라스틱서치는 Restful 방식의 API를 제공하며, 이를 통해 JSON 기반으로 통신하며, 기본적으로 Http 통신을 위해 9200 포트를 이용한다.※참고: Index VS Indicesindex: 색인 데이터indexing: 색인하는 과정indeices: 매핑 정보를 저장하는 논리적인 공간색인을 의미하는 경우 index 단어를 사용하며, 매핑 정의 공간을 의미할 경우 indeices를 사용한다.엘라스틱 서치는 스키마리스라는 기능을 제공하는데 가급적이면 사용하지 말자스키마리스: 문서를 색인하기 위해서는 인덱스를 생성하는 과정이 필요하지만 생성하는 과정 없이 문서를 추가하더라도 문서가 색인되도록 지원하는 기능최초 문서가 색인될 때 인덱스 여부에 따라 존재하지 않으면 문서를 분석해서 인덱스를 자동 생성성..

Elastic Search 2025.09.06

Ch02. 엘라스틱서치 살펴보기 - 엘라스틱서치 구성하는 개념

기본 용어인덱스데이터 저장 공간, 하나의 인덱스는 하나의 타입만 가지며 하나의 물리적인 노드에 여러 개의 논리적인 인덱스를 생성할 수 있다.인덱스 이름으로 문서 데이터를 검색하며, 여러 개의 인덱스를 동시에 검색하는 것도 가능하다.엘라스틱 서치를 분산 환경으로 구성 시, 하나의 인덱스가 여러 노드에 분산 저장되어, 여러 이점을 얻을 수 있다.인덱스 생성 시 기본적으로 5개의 primary 샤드, 1개의 Replica 샤드 세트를 생성인덱스의 이름은 모두 소문자여야 하며 RestFul API로 수행 가능하다(인덱스가 없는 상태로 데이터 추가 시 자동 생성)샤드인덱스 내부에 색인된 데이터는 물리적인 공간에 여러 파티션으로 나뉘어 구성되는데 이 파티션을 샤드라고 부른다.엘라스틱서치는 다수의 샤드로 문서를 분산..

Elastic Search 2025.09.02

Ch01. 검색 시스템 이해하기

검색 시스템의 이해검색 서비스 > 검색 시스템 > 검색 엔진검색 엔진: 광활한 웹에서 정보를 수집해 검색 결과를 제공하는 프로그램으로 검색 결과로 제공되는 데이터의 특성에 따라 구현 형태가 달라진다.검색 시스템: 대용량 데이터를 기반으로 신뢰성 있는 검색 결과를 제공하기 위해 검색엔진을 기반으로 구축된 시스템을 통칭한다.검색 서비스: 검색 엔진을 기반으로 구축한 검색 시스템을 활용해 검색 결과를 서비스로 제공한다검색 시스템 구성 요소수집기: 웹에서 필요한 정보를 수집하는 프로그램(크롤러, 스파이더, 윔, 웹 로봇)스토리지: 데이터베이스에서 데이터를 저장하는 물리적인 저장소. 검색엔진은 색인한 데이터를 스토리지에 보관색인기: 다양한 형태소 분석기를 조합해 정보에서 의미가 있는 용어를 추출하고 검색에 유리한..

Elastic Search 2025.09.02

Simple Producer 구현하기

Java Producer Client Api 처리 로직 Producer 환경 설정(Properties 객체를 이용)1번에서 설정한 환경 설정값을 반영하여 KafkaProducer 객체 생성.토픽명과 메시지 값(Key, Value)을 입력하여 보낼 메시지인 ProducerRecord 객체 생성KafkaProducer객체의 send( )메소드를 호출하여 ProducerRecord 전송KafkaProducer객체의 close( )메소드를 호출하여 종료실습1. Topic 생성kafka-topics --bootstrap-server localhost:9092 --create --topic simple-topic2. Producer 생성public class SimpleProducer { public stat..

Java 기반 카프카 클라이언트 구현을 위한 프로젝트 세팅

프로젝트 세팅Java Version = JDK-21Intellij 사용Multi Module 프로젝트Apache Kafka 클라이언트 다운로드https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients/3.1.0// https://mvnrepository.com/artifact/org.apache.kafka/kafka-clientsimplementation 'org.apache.kafka:kafka-clients:3.1.0'Confluence Kafka 7.x.x 랑 호환되는 3.1.0 버전으로 ImportSlf4J(로그) 관련 라이브러리 다운로드 // https://mvnrepository.com/artifact/org.slf4j/slf4j..

Kafka Config 구분 및 이해

Broker와 Topic 레벨 ConfigKafka 서버에서 설정되는 ConfigTopic의 Config 값은 Broker 레벨에서 지정한 Config를 기본으로 설정하며 별도의 Topic 레벨 Config를 설정할 경우 이를 따름 보통 server.properties에 있는 Config는 변경시 Broker 재기동이 필요한 Static Config이며, Dynamic Config는 kafka-configs를 이용하여 동적으로 config 변경 가능.Producer와 Consumer 레벨 ConfigKafka 클라이언트에서 설정되는 ConfigClient 레벨에서 설정되므로 server.properties에 존재하지 않고, kafka-configs로 수정할 수 없으며 Client 수행시마다 설정할 수 있..

Kafka-consumer-groups 명령어

Consumer Group list 정보실습Kafka Group List 정보 보기kafka-consumer-groups --bootstrap-server localhost:9092 --listConsumer Group과 Consumer 관계, Partition 등에 대한 상세 정보실습 kafka-consumer-groups --bootstrap-server localhost:9092 --describe --group group_01Consumer 1개 더 투입 kafka-console-consumer --bootstrap-server localhost:9092 --group group_01 --topic multipart-topic --property print.key=true --property pr..