일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스프링부트
- 알고리즘
- 카프카
- Docker
- Spring Data JPA
- 백트래킹
- 스프링
- 백준
- Spring
- 쿠버네티스
- Kafka
- springboot
- 코드업
- Spring Boot
- 프로그래밍문제
- 클라우드 컴퓨팅
- Elasticsearch
- 로드밸런서
- JPA
- 오일러프로젝트
- VPC
- DFS
- 자료구조
- 월미도
- 인천여행
- 클라우드
- aws
- 스프링 부트
- gcp
- Apache Kafka
- Today
- Total
목록Elasticsearch (7)
GW LABS
9.1 inverted index란 token: 공백 기준으로 문장을 나누어 생긴 단어 inverted index: 문서에서 토큰이 몇 번 출현했는지 빈도를 저장한 해시맵 형태의 자료구조 검색 결과를 얻기 위해서는 토큰이 검색어와 정확하게 일치해야한다. analyze API 문자열이 어떻게 토크나이징 되는지 확인할 수 있는 API curl --location --request GET 'localhost:9200/_analyze?pretty' \ --header 'Content-Type: application/json' \ --data-raw '{ "analyzer": "standard", "text": "I am a boy" }' # 결과 { "tokens": [ { "token": "i", "start..
7.1 클러스터의 상태 확인하기 cat API: 클러스터의 상태, 노드의 상태, 샤드의 상태 등 정보 확인 기능 /_cat/health?format=json&pretty status green: 모든 샤드가 정상적으로 동작하고 있는 상태 yellow: 모든 프라이머리 샤드는 정상적으로 동작하고 있으나, 일부 혹은 모든 레플리카 샤드가 정상적으로 동작하고 있지 않은 상태 red: 일부 혹은 모든 프라이머리 샤드/레플리카 샤드가 정상적으로 동작하고 있지 않은 상태 데이터 유실 가능성이 있다. 7.2 노드의 상태와 정보 확인하기 /_cat/nodes /_cat/nodes?v&h=id,name,disk.used_percent 조회하고 싶은 노드의 정보값을 파라미터로 넘겨 확인할 수 있다. 7.3 인덱스의 상태와..
6.1 버전 업그레이드 Full Cluster Restart: 모든 노드를 동시에 재시작하는 방식이며, 다운 타임이 발생하지만 빠르게 버전을 업그레이드 할 수 있다. Rolling Restart: 노드를 순차적으로 한 대씩 재시작하는 방식이며, 다운 타임은 없지만 노드 개수에 따라서 업그레이드에 소요되는 시간이 길어질 수 있다. 수동외의 다른방법으로 업그레이드 할 수 있는 방법이 있는지 리서치 필요 6.2 샤드 배치 방식 변경 장애로 인해 unassigned 샤드들에 대한 재할당이 필요한데 지속적으로 실패한다면 강제 배치가 필요 reroute: 샤드 하나하나를 특정 노드에 배치할 때 사용 allocation: 클러스터 전체에 해당하는 샤드 배치 방식을 변경할 때 사용 all: 프라이머리 샤드와 레플리카 ..
5.1 elasticsearch.yml 설정파일 ElasticSearch를 구성하기 위해 기본이 되는 환경 설정 파일 docker image에서는 환경설정값을 주입해서 사용하는 것도 가능 5.1.1 Cluster 영역 cluster.name: 클러스터 이름 5.1.2 Node 영역 node.name: 노드 이름 변경하려면 노드를 재시작 해야한다. node.attr.rack: r1 사용자 정의된 rack 값을 통해 HA 구성과 같이 샤드를 분배할 수 있는 기능 5.1.3 Path 영역 path.data: /var/lib/elasticsearch 노드가 가지고 있을 문서들을 저장할 경로 설정 (세그먼트 파일위치) 여러 개의 경로를 설정할 수 있음 path.logs: /var/log/elasticsearch ..
4.1 클러스터와 노드의 개념 클러스터: ElasticSearch 프로세스들을 논리적으로 결합하여 하나의 ElasticSearch 프로세스처럼 사용할 수 있게 해주는 기술 name: 노드의 이름 cluster_name: 클러스터의 이름 cluster_uuid: 클러스터의 UUID. 클러스터의 속한 모든 노드가 동일 값을 갖는다. 노드: 하나하나의 ElasticSearch 프로세스 마스터: 클러스터의 메타데이터 관리. 마스터 노드는 클러스터에서 한 대이다. 마스터 노드의 역할을 할 수 있는 노드가 있지만 실제 마스터 노드는 한 대이다. 데이터: 사용자의 문서를 저장 인제스트: 사용자의 문서가 저장되기 전 문서 내용을 사전처리 코디네이트: 사용자의 요청을 데이터 노드로 전달하고, 데이터 노드로부터 결과를 취..
2.1 문서 색인과 조회 ElasticSearch API 구조 ${url}/${인덱스이름}/${타입이름}/${ID} 색인 요청 과정 인덱스 생성 타입 생성 스키마 생성 문서 ID 검사 신규 색인 기존 문서 업데이트 문서생성 curl --location --request POST 'http://localhost:9200/user/_doc/1?pretty' \ --header 'Content-Type: application/json' \ --data-raw '{ "username" : "gwkim" }' # 응답 { "_index": "user", "_id": "1", "_version": 4, "result": "updated", "_shards": { "total": 2, "successful": 1, ..
1.1 ElasticSearch란 루씬 기반의 오픈 소스 검색 엔진 JSON 기반의 문서를 저장/검색/분석 준실시간 검색 엔진 문서를 메모리에 저장 refresh_interval 시간에 따라 Shard에 문서를 저장 클러스터 구성 프라이머리/레플리카 샤드 메시 형태기 떄문에 어떤 노드에서든 색인/검색 처리가능 스키마리스 Rest API Docker로 ElasticSearch 구성하기 version: '2.2' services: my-es: image: docker.elastic.co/elasticsearch/elasticsearch:8.3.3 container_name: my-es environment: - node.name=my-es-node - cluster.name=my-es-cluster - di..