전체 글
-
엘라스틱서치 text, keyword 타입공부하기/엘라스틱서치 2024. 2. 12. 22:43
text, keyword 두 타입 모두 문자열 자료형을 담는 타입이다. 두 타입은 정렬과 집계, 스크립트 작업을 수행할 때 동작의 차이가 있다 -> keyword 타입 우세 사전지식 - 역색인 ( inverted index ) -> "나는 최고다" = "나는", "최고다" 와 같이 공백 문자로 문자열을 잘랐을 때 각각의 문자열을 토큰이라고 한다. -> 문자열을 토큰으로 나누는 과정을 토크나이징이라고 한다. -> 이렇게 토크나이징된 결과를 저장하는 결과가 역색인이다. - 애널라이저 -> 0개 이상의 character filter, 1개의 tokenzier, 0개 이상의 token filter로 구성된다. -> 역색인을 만들어내기 위해서 필요한 토큰(token)을 생성하는 과정에서 동작 - 노멀라이저 -> ..
-
엘라스틱서치 인덱스 매핑카테고리 없음 2024. 2. 12. 21:38
매핑 : 문서가 인덱스에 어떻게 색인되고 저장되는지를 정의 -> JSON의 각 필드를 어떻게 분석하고 색인할지 어떤 타입으로 저장할지 등을 세부적으로 지정할 수 있음 이 전 글에서 생성한 인덱스에 문서를 색인한 후 인덱스를 다시 확인해보자 -> mapping 데이터에 필드의 타입과 관련된 정보가 생성된걸 확인할 수 있음 ( 동적 매핑 ) -> 기존 mapping 데이터가 존재하지 않으면 엘라스틱서치는 자동으로 적당한 필드 타입을 지정하고 mapping 정보를 생성한다. -> PUT 인덱스이름 { "mapping": { "properties": {...}}} 명령을 통해 명시적 매핑이 가능하다. -> 매핑 설정 필드 타입은 한번 지정되면 변경이 불가능 -> 매핑을 어떻게 지정하느냐에 따라 성능차 발생 필..
-
엘라스틱서치 인덱스 설정 조회 및 생성카테고리 없음 2024. 2. 12. 19:03
인덱스 설정 -> 이전 문서에서 인덱스를 따로 생성하지 않았습니다. -> 엘라스틱서치는 존재하지 않는 인덱스에 문서 색인 요청이 오면 자동으로 인덱스를 생성합니다. 인덱스 설정 조회 문법 GET 인덱스이름/_settings -> 실습 : GET local_test_index/_settings -> number_of_shards : 인덱스가 데이터를 몇개의 샤드로 나눌 것인지 지정하는 값 한번 지정하면 reindex 같은 동작을 통해 인덱스를 통째로 재색인하지 않으면 바꿀 수 없음 샤드 개수를 어떻게 지정하느냐는 클러스터 전체의 성능에 큰 영향을 미친다. 샤드 숫자가 많아지면 클러스터 성능이 떨어진다. 샤드 숫자가 적으면 샤드의 크기가 너무 커진다. -> 장애 상황에서 샤드 복구에 많은 시간이 소요된다. ..
-
엘라스틱 서치와 루씬 요약공부하기/엘라스틱서치 2024. 2. 12. 18:44
루씬 : 문서를 색인하고 검색하는 라이브러리 - 루씬에서 검색하려면 먼저 파일을 열어야한다. - 색인이 완료된 문서만 검색할 수 있다. 세그먼트 - 디스크에 기록된 파일들이 모인 단위 - 루씬의 검색 대상 - 불변( immutable ) 데이터로 구성돼 있다. - 새 문서는 새 세그먼트로 생성된다. - 문서를 update,delete 하는 경우 세그먼트의 삭제 플래그를 표시하고 새 세그먼트를 생성한다. - 여러 세그먼트가 모이ㅏ면 하나의 루씬 인덱스가 된다. 루씬 flush -> 시스템의 페이지 캐시에 데이터를 넘겨주는 것까지만 보장할 뿐 디스크에 파일이 실제로 기록되는 것까지 보장하지 않습니다. 과정 : 문서 색인 요청 -> 문서 분석 -> 역색인 생성 -> 메모리 버퍼에 저장 ->디스크 flush 루..
-
elasticsearch 8.4.2 이론 및 실습공부하기/엘라스틱서치 2024. 2. 12. 16:56
키바나 접속 문서 색인 -> 엘라스틱서치에 문서를 색인하려면 문서를 색인할 인덱스 이름, _id, 값을 지정하고 문서의 내용을 요청 본문에 담아서 REST API를 호출합니다. - _id를 지정하여 색인 문법 PUT 인덱스이름/_doc/_id값 { ... } -> 실습: PUT local_test_index/_doc/1 - _id를 지정하지 않고 색인 문법 POST 인덱스이름/_doc { ... } -> 실습 : POST local_test_index/_doc 문서 조회 -> 문서 조회는 인덱스의 이름과 _id값을 지정하여 GET 메서드로 호출하여 확인합니다. 문법 GET 인덱스이름/_doc/_id값 -> 실습 : GET local_test_index/_doc/1 문서 업데이트 -> 문서를 업데이트..
-
mac m1 키바나 8.4.2 설치공부하기/엘라스틱서치 2024. 2. 12. 15:51
키바나는 엘라스틱서치의 데이터를 효과적으로 시작화하는 솔루션입니다. https://www.elastic.co/kr/downloads/past-releases/kibana-8-4-2 Kibana 8.4.2 | Elastic Release Notes View the detailed release notes here. www.elastic.co -> 설치한 후 압축을 해제합니다. Kibana-8.4.2/config/kibana.yml server.port: 5601 server.host: "localhost" server.publicBaseUrl: "http://localhost:5601" elasticsearch.hosts: ["http://localhost:9200"] - 아래와 같은 에러가 발생한다면? ..
-
mac m1 엘라스틱서치 설치 및 실행공부하기/엘라스틱서치 2024. 2. 12. 15:16
https://www.elastic.co/kr/downloads/past-releases/elasticsearch-8-4-2 Elasticsearch 8.4.2 | Elastic Release Notes View the detailed release notes here. www.elastic.co 위 이미지 빨간 박스 선택 후 설치 설치 완료 후 압축을 해제합니다. 압축 해제된 디렉토리를 VSCODE로 오픈합니다. elasticsearch.yml cluster.name: local-test-elastic node.name: local-test-node01 path: data: 데이터경로 logs: 로그경로 network.host: 127.0.0.1 discovery.type: "single-node" x..
-
엘라스틱서치 사전 지식공부하기/엘라스틱서치 2024. 2. 11. 18:01
엘라스틱서치 : 아파치 루씬 라이브러리를 기반으로 만든 분산 검색 엔진 - JSON 기반의 문서를 저장,색인,검색하기에 분산 noSQL 스토리지의 성격도 갖음 - 풀 텍스트 검색이 가능 - 다양한 종류의 검색 쿼리를 지원 - JOSN 기반의 REST API를 사용 - 준실시간검색 지원 (역색인 검색이 가능할때까지 약 1초의 딜레이가 기본값) - 트랜잭션을 지원하지 않음 - 사실상 조인을 지원하지 않음 (join타입은 존재하지만 제한적인 상황을 위한 기능으로 성능이 매우 떨어짐) 루씬 : 데이터를 색인하고 검색하는 기능을 제공하는 검색 엔진의 코어 라이브러리 키바나 : 엘라스틱 서치의 데이터를 손쉽게 시각화 로그스태시 : 엘라스틱서치에 색인할 데이터를 수집하고 변환 ELK : 위 로그스태시 + 키바나 + ..