간편결제, 신용카드 청구할인
카카오페이 3,000원
(카카오페이 5만원 이상 결제시, 1/1~1/31 기간 중 1회)
인터파크 롯데카드 5% (32,490원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (23,940원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (27,360원)
(최대할인 4만원 / 2만원 이상 결제)
Close

엘라스틱서치 실무 가이드 : 한글 검색 시스템 구축부터 대용량 클러스터 운영까지

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 1,274
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

38,000원

  • 34,200 (10%할인)

    1,900P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(32)

  • 상품권

AD

책소개

이 책은 오픈소스 검색엔진의 대표 주자인 엘라스틱서치에 대한 전반적인 내용을 다룬다. 하지만 단순히 엘라스틱서치의 기능을 단편적으로만 설명하고 끝내는 것이 아니라 한국 검색 시장에 맞게 한글 형태소 분석기를 이용하는 방법이나 한글 자동완성 구현 원리, 대용량 클러스터 운영을 위한 노하우까지도 아낌없이 설명하려고 노력했다.

이 책을 통해 저자들이 수년간 검색 시스템을 구축하고 운영하면서 얻은 노하우와 한글 처리 기법들을 얻어가길 바란다.

출판사 서평

★ 이 책에서 다루는 내용 ★

◎ 검색 시스템 구축
- 엘라스틱서치의 특징과 주요 사용법
- 한글 형태소 분석기 활용법
- 한글 자모(Jamo, 자음과 모음) 분석 원리
- 한글 키워드 자동완성(초성 검색, 자모 검색, 오타 교정)
- 자바 클라이언트 활용법

◎ 대용량 클러스터 운영
- 인덱스와 샤드 최적화를 위한 설계 기법
- 시스템 튜닝 포인트
- 대용량 클러스터 운영 노하우
- 장애 방지를 위한 실시간 모니터링
- 노드 부트스트랩 과정의 이해
- 랠리를 이용한 클러스터의 성능 측정

목차

▣ 01장 검색 시스템 이해하기
1.1 검색 시스템의 이해
__1.1.1 검색 시스템이란?
__1.1.2 검색 시스템의 구성 요소
__1.1.3 관계형 데이터베이스와의 차이점
1.2 검색 시스템과 엘라스틱서치
__1.2.1 엘라스틱서치가 강력한 이유
__1.2.2 엘라스틱서치의 약점
1.3 실습 환경 구축
__1.3.1 엘라스틱서치 설치
__1.3.2 키바나 설치
__1.3.3 환경 구축 관련 트러블슈팅

▣ 02장 엘라스틱서치 살펴보기
2.1 엘라스틱서치를 구성하는 개념
__2.1.1 기본 용어
__2.1.2 노드의 종류
__2.1.3 클러스터, 노드, 샤드
2.2 엘라스틱서치에서 제공하는 주요 API
__2.2.1 인덱스 관리 API
__2.2.2 문서 관리 API
__2.2.3 검색 API
__2.2.4 집계 API

▣ 03장 데이터 모델링
3.1 매핑 API 이해하기
__3.1.1 매핑 인덱스 만들기
__3.1.2 매핑 확인
__3.1.3 매핑 매개변수
3.2 메타 필드
__3.2.1 _index 메타 필드
__3.2.2 _type 메타 필드
__3.2.3 _id 메타 필드
__3.2.4 _uid 메타 필드
__3.2.5 _source 메타 필드
__3.2.6 _all 메타 필드
__3.2.7 _routing 메타 필드
3.3 필드 데이터 타입
__3.3.1 Keyword 데이터 타입
__3.3.2 Text 데이터 타입
__3.3.3 Array 데이터 타입
__3.3.4 Numeric 데이터 타입
__3.3.5 Date 데이터 타입
__3.3.6 Range 데이터 타입
__3.3.7 Boolean 데이터 타입
__3.3.8 Geo-Point 데이터 타입
__3.3.9 IP 데이터 타입
__3.3.10 Object 데이터 타입
__3.3.11 Nested 데이터 타입
3.4 엘라스틱서치 분석기
__3.4.1 텍스트 분석 개요
__3.4.2 역색인 구조
__3.4.3 분석기의 구조
__3.4.4 전처리 필터
__3.4.5 토크나이저 필터
__3.4.6 토큰 필터
__3.4.7 동의어 사전
3.5 Document API 이해하기
__3.5.1 문서 매개변수
__3.5.2 Index API
__3.5.3 Get API
__3.5.4 Delete API
__3.5.5 Delete By Query API
__3.5.6 Update API
__3.5.7 Bulk API
__3.5.8 Reindex API

▣ 04장 데이터 검색
4.1 검색 API
__4.1.1 검색 질의 표현 방식
__4.1.2 URI 검색
__4.1.3 Request Body 검색
4.2 Query DSL 이해하기
__4.2.1 Query DSL 쿼리의 구조
__4.2.2 Query DSL 쿼리와 필터
__4.2.3 Query DSL의 주요 파라미터
4.3 Query DSL의 주요 쿼리
__4.3.1 Match All Query
__4.3.2 Match Query
__4.3.3 Multi Match Query
__4.3.4 Term Query
__4.3.5 Bool Query
__4.3.6 Query String
__4.3.7 Prefix Query
__4.3.8 Exists Query
__4.3.9 Wildcard Query
__4.3.10 Nested Query
4.4 부가적인 검색 API
__4.4.1 효율적인 검색을 위한 환경설정
__4.4.2 Search Shards API
__4.4.3 Multi Search API
__4.4.4 Count API
__4.4.5 Validate API
__4.4.6 Explain API
__4.4.7 Profile API

▣ 05장 데이터 집계
5.1 집계
__5.1.1 엘라스틱서치와 데이터 분석
__5.1.2 엘라스틱서치가 집계에 사용하는 기술
__5.1.3 실습 데이터 살펴보기
__5.1.4 Aggregation API 이해하기
5.2 메트릭 집계
__5.2.1 합산 집계
__5.2.2 평균 집계
__5.2.3 최솟값 집계
__5.2.4 최댓값 집계
__5.2.5 개수 집계
__5.2.6 통계 집계
__5.2.7 확장 통계 집계
__5.2.8 카디널리티 집계
__5.2.9 백분위 수 집계
__5.2.10 지형 경계 집계
__5.2.11 지형 중심 집계
5.3 버킷 집계
__5.3.1 범위 집계
__5.3.2 날짜 범위 집계
__5.3.3 히스토그램 집계
__5.3.4 날짜 히스토그램 집계
__5.3.5 텀즈 집계
5.4 파이프라인 집계
__5.4.1 형제 집계
__5.4.2 부모 집계
5.5 근삿값(Approximate)으로 제공되는 집계 연산
__5.5.1 집계 연산과 정확도
__5.5.2 분산 환경에서 집계 연산의 어려움

▣ 06장 고급 검색
6.1 한글 형태소 분석기 사용하기
__6.1.1 은전한닢 형태소 분석기
__6.1.2 Nori 형태소 분석기
____6.1.2.1 nori_tokenizer 토크나이저
__6.1.3 트위터 형태소 분석기
6.2 검색 결과 하이라이트하기
6.3 스크립트를 이용해 동적으로 필드 추가하기
6.4 검색 템플릿을 이용한 동적 쿼리 제공
6.5 별칭을 이용해 항상 최신 인덱스 유지하기
6.6 스냅숏을 이용한 백업과 복구

▣ 07장 한글 검색 확장 기능
7.1 Suggest API 소개
__7.1.1 Term Suggest API
__7.1.2 Completion Suggest API
7.2 맞춤법 검사기
__7.2.1 Term Suggester API를 이용한 오타 교정
__7.2.2 한영/영한 오타 교정
7.3 한글 키워드 자동완성
__7.3.1 Completion Suggest API를 이용한 한글 자동완성
__7.3.2 Suggest API를 이용한 한글 자동완성의 문제점
__7.3.3 직접 구현해보는 한글 자동완성
7.4 자바카페 플러그인
__7.4.1 한글 유니코드의 이해
__7.4.2 한글 자모 분석 필터(javacafe_jamo)
__7.4.3 한글 초성 분석 필터(javacafe_chosung)
__7.4.4 영한 오타 변환 필터(javacafe_eng2kor)
__7.4.5 한영 오타 변환 필터(javacafe_kor2eng)
__7.4.6 스펠링 체크 필터(javacafe_spell)

▣ 08장 엘라스틱서치 클라이언트
8.1 엘라스틱서치 클라이언트 이해하기
__8.1.1 클라이언트 모듈 소개
__8.1.2 자바 클라이언트 모듈
8.2 Transport 클라이언트
__8.2.1 Transport 클라이언트 연결
__8.2.2 매핑 API 사용하기
__8.2.3 문서 API 사용하기
__8.2.4 검색 API 사용하기
__8.2.5 집계 API 사용하기
__8.2.6 Query DSL API 사용하기
8.3 High Level REST 클라이언트
__8.3.1 REST 클라이언트 연결
__8.3.2 매핑 API 사용하기
__8.3.3 문서 API 사용하기
__8.3.4 검색 API 사용하기

▣ 09장 엘라스틱서치와 루씬 이야기
9.1 클러스터 관점에서 구성요소 살펴보기
__9.1.1 클러스터
__9.1.2 노드
__9.1.3 인덱스
__9.1.4 문서
__9.1.5 샤드
__9.1.6 레플리카
__9.1.7 세그먼트
9.2 엘라스틱서치 샤드 vs. 루씬 인덱스
9.3 엘라스틱서치가 근실시간 검색을 제공하는 이유
__9.3.1 색인 작업 시 세그먼트의 기본 동작 방식
__9.3.2 세그먼트 불변성
__9.3.3 세그먼트 불변성과 업데이트
__9.3.4 루씬을 위한 Flush, Commit, Merge
__9.3.5 엘라스틱서치를 위한 Refresh, Flush, Optimize API
__9.3.6 엘라스틱서치와 NRT(Near Real-Time)
9.4 고가용성을 위한 Translog의 비밀
__9.4.1 Translog의 동작 순서
__9.4.2 Translog가 존재하는 이유
9.5. 엘라스틱서치 샤드 최적화
__9.5.1 운영 중에 샤드의 개수를 수정하지 못하는 이유
__9.5.2 레플리카 샤드의 복제본 수는 얼마가 적당할까?
__9.5.3 클러스터에서 운영 가능한 최대 샤드 수는?
__9.5.4 하나의 인덱스에 생성 가능한 최대 문서 수는?

▣ 10장 대용량 처리를 위한 시스템 최적화
10.1 노드 실행환경과 JVM 옵션
__10.1.1 엘라스틱서치 릴리스 노트
__10.1.2 실행 시 자바 8 이상을 사용해야 하는 이유
__10.1.3 항상 최신 버전의 엘라스틱서치를 사용해야 하는 이유
__10.1.4 자바 8에서 제공하는 JVM 옵션
__10.1.5 엘라스틱서치에 적용된 JVM 옵션
10.2 힙 크기를 32GB 이하로 유지해야 하는 이유
__10.2.1 엘라스틱서치와 힙 크기
__10.2.2 Ordinary Object Pointer
__10.2.3 Compressed Ordinary Object Pointer
__10.2.4 엘라스틱서치에서 힙 크기 설정하기
__10.2.5 엘라스틱서치에서 Compressed OOP 사용하기
10.3 엘라스틱서치와 가상 메모리
__10.3.1 가상 메모리
__10.3.2 JVM을 위한 가상 메모리
__10.3.3 엘라스틱서치를 위한 vm.max_map_count 설정
10.4 분산환경에서의 메모리 스와핑
__10.4.1 메모리 스와핑
__10.4.2 엘라스틱서치에서 스와핑을 비활성화해야 하는 이유
10.5. 시스템 튜닝 포인트
__10.5.1 애플리케이션에서 튜닝 가능한 리소스
__10.5.2 ulimit 명령어를 이용한 유저 레벨의 튜닝
__10.5.3 sysctl 명령어를 이용한 커널 레벨의 튜닝
__10.5.4 엘라스틱서치 노드 레벨의 튜닝

▣ 11장 장애 방지를 위한 실시간 모니터링
11.1 클러스터 Health 체크
__11.1.1 클러스터 레벨의 Health 체크
__11.1.2 인덱스 레벨의 Health 체크
__11.1.3 샤드 레벨의 Health 체크
__11.1.4 Health 체크 활용하기
11.2 물리적인 클러스터 상태 정보 조회
__11.2.1 클러스터 레벨의 물리 상태 조회
__11.2.2 노드 레벨의 물리 상태 조회
11.3 클러스터에 대한 실시간 모니터링
__11.3.1 클러스터 레벨의 실시간 모니터링
__11.3.2 노드 레벨의 실시간 모니터링
__11.3.3 인덱스 레벨의 실시간 모니터링
11.4 Cat API로 콘솔에서 모니터링하기
__11.4.1 Cat API와 REST API 차이점
__11.4.2 Cat API 공통 파라미터
__ 11.4.3 콘솔에서 호출하는 Cat API

▣ 12장 안정적인 클러스터 운영 노하우
12.1 노드 부트스트랩 과정의 이해
__ 12.1.1 부트스트랩 과정이 필요한 이유
__ 12.1.2 부트스트랩 체크 과정 따라가기
12.2 마스터 노드와 데이터 노드 분리하기
__ 12.2.1 엘라스틱서치 노드의 종류
__ 12.2.2 마스터 노드와 데이터 노드를 분리해야 하는 이유
__ 12.2.3 클러스터 Split Brain 문제 방지하기
12.3 클러스터 관리 API
__ 12.3.1 런타임에 환경설정 변경(_cluster/settings API)
__ 12.3.2 대기 중인 클러스터 변경 명령 조회(_cluster/pending_tasks API)
__ 12.3.3 사용률이 높은 스레드 조회(_nodes/hot_threads API)
__ 12.3.4 노드 간 샤드 이동(_cluster/reroute API)
__ 12.3.5 실행 중인 태스크 조회(_tasks API)
__ 12.3.6 관리 API 호출 통계(_nodes/usage API)
12.4 안정적인 클러스터 운영을 위한 주요 체크포인트
__ 12.4.1 클러스터 상태 측정
__ 12.4.2 검색 성능 측정
__ 12.4.3 색인 성능 측정
__ 12.4.4 HTTP 성능 측정
__ 12.4.5 GC 성능 측정
__ 12.4.6 운영체제 성능 측정
__ 12.4.7 스레드풀 상태 측정
__ 12.4.8 캐시 상태 측정

▣ 13장 클러스터 성능 측정
13.1 엘라스틱서치를 위한 벤치마크 툴
__ 13.1.1 루씬 벤치마킹 유틸리티
__ 13.1.2 Elasticsearch Rally
13.2 랠리(Rally)를 이용한 클러스터 부하 테스트
__ 13.2.1 랠리 설치
__ 13.2.2 랠리 Tracks 옵션
__ 13.2.3 랠리 Cars 옵션
__ 13.2.4 레이스 시작하기
__ 13.2.5 토너먼트 결과 비교하기
13.3 키바나(Kibana)를 이용한 성능 모니터링
__ 13.3.1 Search Rate
__ 13.3.2 Search Latency
__ 13.3.3 Indexing Rate
__ 13.3.4 Indexing Latency

관련이미지

저자소개

권택환, 김동우, 김흥래, 박진현, 최용호, 황희정 [저] 신작알림 SMS신청 작가DB보기
생년월일 -

해당작가에 대한 소개가 없습니다.

이 상품의 시리즈

(총 34권 / 현재구매 가능도서 33권)

선택한 상품 북카트담기
펼쳐보기

전공도서/대학교재 분야에서 많은 회원이 구매한 책

    리뷰

    10.0 (총 0건)

    구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

    리뷰쓰기

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    10.0

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    판매자

    (주)교보문고

    상호

    (주)교보문고

    사업자 종류

    법인사업자

    사업자번호

    102-81-11670

    연락처

    1544-1900

    이메일

    callcenter@kyobobook.co.kr

    통신판매 신고 번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시, 1만 원 이상 무료, 1만원 미만 2천 원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용