Database/Elasticsearch
[Elasticsearch] 정보 검색과 검색 쿼리
[Elasticsearch] 정보 검색과 검색 쿼리
2024.12.11저장된 데이터를 검색할 때는 엘라스틱서치 엔진이 제공하는 QueryDSL을 사용한다. 여기서 QueryDSL은 Domain Specific Language의 약자로 특정 기술에 종속되지 않고 도메인 모델과 쿼리 언어간 자연스러운 통합을 목표로 설계된 언어이다.여러 데이터 소스에서 사용할 수 있는 추상화된 쿼리 방법론이고, JPA Elasticsearch 등 각 기술 스택에 맞춰서 구현된 QueryDSL 구현체가 있다고 생각하면 된다. (인터페이스) Term-Level 쿼리 analyzed 되지 않은 필드에 대해 검색할 때 사용되는 쿼리.keyword, integer, date, boolean 값으로 데이터를 찾을 때 사용하자. term, terms. range, exists, prefix, wi..
[Elasticsearch] 매핑과 데이터 타입
[Elasticsearch] 매핑과 데이터 타입
2024.11.27Document에 텍스트가 저장될 때, 엘라스틱서치의 analyzer가 작동해 텍스트가 인덱싱되기 전에 analyze, tokenize 과정을 거치게 된다. 인덱스를 생성할 때 각 필드에 대한 analyzer를 설정할 수 있다.Document가 저장될 때 마다 설정된 analyzer는 텍스트를 토큰화하고 지정된 token filter와 character filter를 통해 텍스트를 처리한 후 인덱싱이 가능한 형태로 저장한다. character filter - 텍스트의 특정 문자나 패턴을 변경하거나 제거하는 역할을 수행한다. (HTML태그 제거)tokenizer - 텍스트를 토큰 단위로 분할하는 역할을 수행한다. (단어 단위로 구분, 구분자 단위로 구분)token filter - 분할된 토큰에 대해 변..
[Elasticsearch] 아키텍처와 동작 원리
[Elasticsearch] 아키텍처와 동작 원리
2024.11.07Cluster데이터를 다루는 노드들로 구성되며 엘라스틱서치는 클러스터로 대규모 데이터를 효율적으로 관리한다. Node클러스터의 구성 요소로 데이터를 다루는 단일 실행 인스턴스이다.클러스터 내 각 노드들은 다른 노드들과 통신한다. IndexRDB의 테이블과 유사한 개념으로 Document를 모아둔 집합이다.인덱스는 샤드로 분할돼 클러스터 내 여러 노드에 분산 저장해 데이터를 효율적으로 처리한다. 각 샤드에는 레플리카가 설정돼 특정 노드에 장애가 발생했을 때 데이터를 보존하거나 읽기 부하를 분산시킨다.인덱스에 Document를 저장하는 과정을 인덱싱이라고 부른다. Document엘라스틱서치에서 다루는 데이터의 기본 단위로 인덱스에 저장된 JSON 형식의 레코드이다. 도큐먼트는 인덱스에 저장되고, 인덱스는 노..