검색엔진 스터디 8

Elasticserch 6.4.3 실행

엘라스틱서치 실행 $ docker pull elasticsearch:6.4.3 $ docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elasticsearchTest elasticsearch:6.4.3 -v /Users/chihwan/Downloads/elastic-book-snapshot-master:/es/book_backup // 예제 코드 추가 $ docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /Users/chihwan/Downloads/elastic-book-snapshot-master:/usr/share/elastics..

Elasticsearch 8.1.2 실행

Elasticsearch 설치 Docker $ docker pull elasticsearch:8.10.2 $ docker run -p 9200:9200 -p 9300:9300 -v /Users/chihwan/Documents/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name elasticsearch-study elasticsearch:8.10.2 ssl 설정으로 config/elasticsearch.yml 파일 수정 cluster.initial_master_nodes ⇒ docker id cluster.name: "docker-cluster" network.host: 0.0.0.0 #-------..

07장 한글 검색 확장 기능

엘라스틱서치 실무 가이드 7장을 요약한 내용입니다. Suggest API가 키워드 자동완성 기능을 지원 한글 키워드는 정상 동작하지 않음 7.1 Suggest API 소개 Suggest API를 이용하면 텀과 정확히 일치하지 않는 단어도 자동 인식 Suggest API 4가지 방식 Term Suggest API: 추천 단어 제안 Compleetion Suggest API: 자동완성 제안 Phrase Suggest API: 추천 문장 제안 Context Suggest API: 추천 문맥 제안 7.1.1 Term Suggest API 편집거리(edit distance)를 사용해 비슷한 단어를 제안 문자열이 다른 문자열과 얼마나 비슷한가를 편집거리를 사용해 알아 볼 수 있음 편집거리 측정 방식은 단어를 삽입,..

05장 데이터 집계

엘라스틱서치 실무 가이드 5장을 요약한 내용입니다. 데이터를 그룹화해서 각종 통계 지표를 제공하기 위해 집계 기능을 제공 SQL에서 제공하는 Group By 연산과 비슷하다 5.1 집계 집계는 데이터를 그룹화하고 통계를 구하는 기능 5.1.1 엘라스틱서치와 데이터 분석 대용량의 데이터를 처리하기 위해 데이터를 조각내어 관리 문서의 수가 늘어나도 배치 처리보다 좀 더 실시간에 가깝게 문서 처리 가능 영화별로 리뷰 점수를 집계하는 예제 SQL의 GROUP BY를 사용 SELECT SUM(ratings) FROM movie_review GROUP BY movie_no Query DSL 사용 집계를 여러 개 중첩해서 사용 가능 범위, 날짜, 위치 정보도 집계 가능 { "aggs": { "movie_no_agg"..

04장 데이터 검색

엘라스틱서치 실무 가이드 4장을 요약한 내용입니다. 다양한 검색 조건을 충족시키기 위해 Query DSL이라는 특수한 쿼리 문법을 제공 4.1 검색 API 문장은 색인 시점에 텀으로 분해 색인 시점에 Analyzer를 통해 분석된 텀을 Term, 출현빈도, 문서번호와 같이 연색인 구조로 만들어 내부적으로 저장 검색 시점에는 Keyword 타입과 같은 분석이 불가능한 데이터와 Text 타입과 같은 분석이 가능한 데이터를 구분해 분석을 수행 [그림 4.1] 색인 시점과 검색 시점에서의 동작 비교 참고 4.1.1 검색 질의 표현 방식 검색 API는 기본적으로 질의를 기반으로 동작 4.1.2 URI 검색 URL에 검색할 칼럼과 검색어를 직접 지정하면 검색이 수행 간단한 URI 검색 쿼리 [표 4.1] URI 검..

03장 데이터 모델링

엘라스틱서치 실무 가이드 3장을 요약한 내용입니다. 매핑은 색인될 문서의 데이터 모델링이라고 할 수 있다 필드 데이터 타입이 자동으로 지정될 경우 실제 운영환경에서 예기치 않은 문제가 발생할 수 있다. 매핑 과정은 매우 중요한 과정 3.1 매핑 API 이해하기 매핑은 색인 시 데이터가 어디에 어떻게 저장될지 결정하는 설정 인덱스에 추가되는 각 데이터 타입을 구체적으로 정의하는 일 데이터베이스에서 테이블의 칼럼 정보를 정의하는 것이 중요하듯 엘라스틱서치에서도 데이터의 타입을 정의하는 것은 매우 중요 엘라스틱서치는 스키마리스이기 때문에 명시적으로 필드를 정의하지 않아도 데이터 유형에 따라 필드 데이터 타입에 대한 매핑 정보가 자동으로 생성 실수로 잘못된 타입이 지정될 경우 수정할 방법이 없음 첫 번째 문서를..

02장 엘라스틱서치 살펴보기

엘라스틱서치 실무 가이드 2장을 요약한 내용입니다. 2.1 엘라스틱서치를 구성하는 개념 2.1.1 기본 용어 인덱스 인덱스는 데이터 저장 공간 하나의 인덱스는 하나의 타입 하나의 물리적인 노드에 여러 개의 논리적인 인덱스를 생성 가능 검색시 인덱스 이름으로 문서 데이터를 검색 여러 개의 인덱스를 동시에 검색 가능 인덱스 생성 시 기본적으로 5개의 프라이머리 샤드와 1개의 레플리카 샤드 셋트를 생성 인덱스 이름은 모두 소문자 추가, 수정, 삭제, 검색은 RESTful API로 수행 인덱스가 없는 상태에서 데이터가 추가된다면 데이터를 이용해 인덱스가 자동으로 생성 샤드 색인된 문서는 하나의 인덱스에 저장 인덱스 내부에 색인된 데이터는 물리적인 공간에 여러 개의 파티션으로 나뉘어 구성 파티션을 샤드라고 부른다..

01장 검색 시스템 이해하기

엘라스틱서치 실무 가이드 1장을 요약한 내용입니다. 1.1 검색 시스템의 이해 1.1.1 검색 시스템이란? 검색엔진(Search Engine) 웹에서 정보를 수집해 검색 결과를 제공하는 프로그램 검색엔진은 검색 결과로 제공되는 데이터의 특성에 따라 구현 형태가 각각 달라진다. 검색 시스템(Search System) 대용량 데이터를 기반으로 신뢰성 있는 검색 결과를 제공하기 위해 검색엔진을 기반으로 구축된 시스템을 통칭 수집기를 이용해 데이터를 수집하고 다수의 검색엔진을 이용해 색인하고 검색 결과를 UI로 제공 시스템 내부의 정책에 따라 관련도가 높은 문서의 검색 결과의 상위에 배치할 수 있다. 특정 필드나 문서에 가중치를 둬서 검색의 정확도를 높일수 있다. 검색 서비스(Search Service) 검색엔..