본문 바로가기

분류 전체보기

(11)
엘라스틱서치 실무가이드(5-1) 5]데이터 집계 : 데이터를 그룹화하여 각종 통계지표를 제공하는 집계기능을 공식적으로 제공 5.1]집계 : 데이터를 그룹화하고 통계를 구하는 기능으로 5.0버전이후 기능이 대폭 강화 5.1.1]엘라스틱서치와 데이터 분석 : 엘라스틱은 SQL보다 더욱 강력한 집계기능을 제공하며 인덱스를 활용해 분산 처리가 가능하기 때문에 더 많은 데이터를 빠르게 집계가 가능 5.1.2]엘라스틱서치가 집계에 사용하는 기술 ▶캐시 : 마스터 노드가 여러 노드에 있는 데이터를 집계해 질의에 답한다. : 데이터의 양이 클수록 집계에 많은 양의 CPU와 메모리 자원이 소모되며 응답에 걸리는 시간이 길어진다 > 캐시를 이용하여 해결(질의 결과를 캐시에 저장하여 같은 질의에대한 응답을 보관된 결과를 반환) : 일반적으로 힙메모리의 1..
엘라스틱서치 실무가이드(4-2) 4.4] 부가적인 검색 API 4.4.1]효율적인 검색을 위한 환경 설정 : 엘라스틱서치는 대량의 데이터를 처리하기 위해 기본적으로 데이터를 분상해서 처리한다. 모든샤드에 검색요청을 브로드캐스팅행서 전달하고 기다린다. 각 샤드는 자신이 가지고 있는 데이터를 기준으로 검색을 수행하고 그 결과를 리턴한다. 모든 샤드로부터 검색결과가 리턴되면 해당 결과를 통해 조합하여 최종 질의 결과를 출력한다. : 즉, 부가적인 환경설정값을 필요로한다. 각자의 데이터 특성이나 검색 패턴에 따라 검색 설정 값을 적절한 값으로 수정한다면 효율적인 클러스터 운영이 가능해진다. ▶동적 분배 방식의 샤드 선택 : 부하분산과 장애극복을 위해 원본 샤드의 데이터를 복제한 레플리카 샤드를 함께 운영 > 검색시 모든 샤드에서 검색을 수행시..
엘라스틱서치 실무가이드(4-1) 4] 데이터 검색 : 특정 문장이 검색어로 요청되면 분석기를 통해 분석된 토큰의 일치 여부를 판단해서 그 결과에 대한 Score를 매긴다. 4.1] 검색 API : 문장은 색인 시점에 Term을로 분해 됨 > 검색시에는 이 텀을 일치 시켜야 검색이 가능해짐. : Term레벨의 쿼리 flow : match의 쿼리 flow > 검색시점에도 match, term 에 따라 인덱스를 분석후 문서번호를 찾는다. 4.1.1]검색 질의 표현 방식 : 엘라스틱서치에서 제공하는 API는 기본적으로 Query를 기반으로 동작 URI 검색 > HTTP GET 요청을 활용하여 표현의 한계(간단한 쿼리만 작성) Requset Body검색 > JSON 형식으로 Body에 쿼리를 입력하여 작성 > uri 검색 이용시 자주 사용되는 ..
엘라스틱서치 실무가이드(3-2) 3.4] 엘라스틱서치 분석기 3.4.1] 텍스트 분석 개요 : 루씬을 기반으로 구축된 텍스트 기반 검색엔진으로 인덱스의 정보가 어떻게 저장할지 분석하는 방법으로 일단 기본 Standard 분석기의 처리 방식을 확인할 수 있으며 _analyze API를 통해 분석 결과를 확인 할 수 있으며 각 분석기의 원칙에 따라서 색인되어 저장된다. 3.4.2] 역색인 구조 모든 문서가 가지는 단어의 고유 단어 목록 해당 단어가 어떤 문서에 속해 있는지에 대한 정보 전체 문서에 각 단어가 몇개 들어있는지에 대한 정보 하나의 문서에 단어가 몇번씩 출현했는지에 대한 빈도 3.4.3] 분석기 구조 문장을 특정한 규칙에 의해 수정 - Character Fiter 수정한 문장을 개별 토큰으로 분리 - Tokenizer Filte..
Index 생성 API Request] PUT / Description] : Index 생성 API를 이용해서 엘라스틱 클러스터에 새로운 인덱스를 추가해줄 수 있다 인덱스의 설정 인덱스의 필드를 위한 매핑설정 인덱스 aliases 설정 Path Parameter] : 생성하고 싶은 인덱스의 이름을 입력해주면 된다. 다만, 다음의 규칙을 지켜주면 된다. 소문자 이용 \, /, *, ?, ", , |, space character, 쉼표, #, 등 특수문자는 포함되면 안되나. 7.0 기준으로 콜론(:)은 인덱스에서 더이상 사용 불가 - , _ , + 으로 시작할 수 없음 . or .. 을 사용 못함 255bytes를 넘길 수 없음 Query Parameter] include_type_name(Optional, boolean) : ..
엘라스틱서치 실무가이드(3-1장) 3] 데이터모델링 문서의 데이터 유형에 따라 필드에 적절한 데이터 타입을 지정 - 매핑 : 색인될 문서의 데이터 모델링 미리 설정해 주지 않는다면 엘라스틱서치 내부에서 자체적으로 필드를 생성 후 타입까지 결정(스키마리스) 3.1] 매핑 API 이해 : 매핑은 색인시 데이터가 어디에 어떻게 저장될지를 결정하는 설정 > 역색인의 방법을 상세희 정의 > 데이터의 타입을 설정 [매핑 정보 설정시 고려사항] 문자열을 분석할것인가? _source에 어떤 필드를 정의할것인가? 날짜 필드를 가지는 필드는 무엇인가? 매핑에 정의되지 않고 유입되는 필드는 어떻게 처리할것인가? 3.1.1] 매핑 인덱스 만들기 ▶ PUT / - 해당 api를 통해 엘라스틱 서치 클러스터에 새로운 인덱스를 추가할 수 있으며 설정 및 인덱스 필..
엘라스틱 서치 설치 ElasticSearch란? - 더 많은 문제를 해결하는 분산형 RESTful 검색 및 분석 엔진이다. Elastic Stack의 핵심으로, 데이터를 중심부에 저장하여 예상되는 항복을 검색하고 예상치 못한 항목을 밝혀낼 수 있다.(출처 : elastic 홈페이지 - https://www.elastic.co/kr/products/elasticsearch) 설치하기 설치는 그냥 설치하면 된다.(홈페이지에 들어가서 다운로드를 클릭한다 - 윈도우 선택) zip으로 다운받아 압축을 풀어주는 것이 가장 편하다. 압축을 풀면 설치는 간단하게 끝난다. 실행하기 윈도우에서 커멘드 창을 연다(윈도키+R > cmd 입력) 엘라스틱 설치폴더의 bin폴더를 찾아 이동한다. elasticsearch.bat을 통해 실행해준다. 실..
역색인(Inverted-Index) & 색인(Index) 검색이란? 기억 공간 안에 들어 있는 자료 중 어떤 성질을 만족하는 자료를 찾아내는 일(구글 사전) 성능평가 요소 Recall : 모두 나와야하는 것중 검색 결과에 포함된 것의 비율(재현률) Precision : 검색결과에 포함된 것중 제대로 나온 것의 비율(정확률) ▷정확하고 제대로 나오기 위해서는 느릴 수 밖에 없음 > 해결법 : 역색인 구축 색인(Index)란? 특정한 데이터가 어느 위치에 있는지 미리 저장해두어 검색 시에 빠른 속도로 찾을 수 있도록 하는 것 키워드를 토대로 데이터를 찾을 경우 마지막 데이터까지 확인을 해야할 수 있어 시간이 오래걸릴 수 있다. 역색인(Inverted-Index)란? 데이터를 색인하는 과정에서 찾고자 하는 키워드를 기준으로 위치를 저장해두어 속도를 개선한 것.