이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
1장 개요 1.1 좋은 검색엔진이란?1.2 검색은 새로운 표준1.2.1 구조화된 데이터와 비구조화된 데이터1.2.2 데이터베이스 기반 검색1.2.3 데이터베이스와 검색엔진1.3 최신 검색엔진1.3.1 기능1.3.2 인기 검색엔진1.4 일래스틱서치 개요1.4.1 핵심 영역1.4.2 일래스틱 스택1.4.3 일래스틱서치 사용 사례1.4.4 부적절한 일래스틱서치 사용1.4.5 오해1.5 대중적 채택1.6 생성형 AI와 최신 검색요약2장 시작해 보기 2.1 데이터와 함께 일래스틱서치 준비2.1.1 온라인 서점2.1.2 도큐먼트 인덱싱2.1.3 첫 도큐먼트 인덱싱2.1.4 더 많은 도큐먼트 인덱싱2.2 데이터 검색2.2.1 도큐먼트 집계2.2.2 도큐먼트 검색2.3 풀텍스트 검색2.3.1 match 쿼리: 특정 저자의 책 검색2.3.2 AND 연산자를 사용한 match 쿼리2.3.3 _bulk API를 사용해 도큐먼트 인덱싱2.3.4 다중 필드 검색2.3.5 결과 부스팅2.3.6 문구 검색2.3.7 누락된 단어가 있는 문구2.3.8 철자 오류 처리2.4 텀 수준 쿼리2.4.1 term 쿼리2.4.2 range 쿼리2.5 compound 쿼리2.5.1 bool 쿼리2.5.2 must 절2.5.3 must_not 절2.5.4 should 절2.5.5 filter 절2.6 집계2.6.1 메트릭2.6.2 버킷 집계요약3장 아키텍처 3.1 개요3.1.1 데이터 입력3.1.2 데이터 처리3.1.3 데이터 출력3.2 빌딩 블록3.2.1 도큐먼트3.2.2 인덱스3.2.3 데이터 스트림3.2.4 샤드와 복제본3.2.5 노드와 클러스터3.3 역인덱스3.4 관련성3.4.1 관련성 점수3.4.2 관련성(유사성) 알고리듬3.5 라우팅 알고리듬3.6 스케일링3.6.1 스케일 업(수직 확장)3.6.2 스케일 아웃(수평 확장)요약4장 매핑 4.1 매핑 개요4.1.1 매핑 정의4.1.2 첫 도큐먼트 인덱스 생성4.2 동적 매핑4.2.1 타입 추론 메커니즘4.2.2 동적 매핑의 한계4.3 명시적 매핑4.3.1 인덱싱 API를 사용한 매핑4.3.2 매핑 API를 사용해 스키마 업데이트4.3.3 기존 필드 수정은 허용되지 않는다4.3.4 타입 강제4.4 데이터 타입4.5 핵심 데이터 타입4.5.1 text 데이터 타입4.5.2 keyword 데이터 타입4.5.3 date 데이터 타입4.5.4 숫자 데이터 타입4.5.5 boolean 데이터 타입4.5.6 range 데이터 타입4.5.7 IP 데이터 타입4.6 고급 데이터 타입4.6.1 geo_point 데이터 타입4.6.2 object 데이터 타입4.6.3 nested 데이터 타입4.6.4 flattened 데이터 타입4.6.5 join 데이터 타입4.6.6 search_as_you_type 데이터 타입4.7 다중 데이터 타입이 있는 필드요약5장 도큐먼트 작업 5.1 도큐먼트 인덱싱5.1.1 도큐먼트 API5.1.2 인덱싱 메커니즘5.1.3 새로 고침 프로세스 사용자 정의5.2 도큐먼트 검색5.2.1 단일 도큐먼트 API 사용5.2.2 다중 도큐먼트 검색5.2.3 ID 쿼리5.3 응답 조작5.3.1 응답에서 메타데이터 제거5.3.2 소스 도큐먼트 제외5.3.3 필드 포함 및 제외5.4 도큐먼트 업데이트5.4.1 도큐먼트 업데이트 메커니즘5.4.2 _update API5.4.3 스크립트 업데이트5.4.4 도큐먼트 교체5.4.5 Upsert5.4.6 Upsert로 업데이트5.4.7 쿼리를 사용한 업데이트5.5 도큐먼트 삭제5.5.1 ID로 삭제하기5.5.2 쿼리로 삭제(_delete_by_query)5.5.3 범위 쿼리로 삭제5.5.4 모든 도큐먼트 삭제5.6 벌크 도큐먼트 작업5.6.1 _bulk API 형식5.6.2 벌크 인덱싱 도큐먼트5.6.3 독립된 엔티티와 다중 액션5.6.4 cURL을 사용한 대량 요청5.7 도큐먼트 재인덱싱요약6장 인덱싱 작업 6.1 인덱싱 작업6.2 인덱스 생성6.2.1 암묵적으로 인덱스 생성(자동 생성)6.2.2 명시적으로 인덱스 생성6.2.3 맞춤형 설정이 포함된 인덱스6.2.4 매핑이 포함된 인덱스6.2.5 별칭이 있는 인덱스6.3 인덱스 읽기6.3.1 공개 인덱스 읽기6.3.2 숨겨진 인덱스 읽기6.4 인덱스 삭제6.5 인덱스 닫기와 열기6.5.1 인덱스 닫기6.5.2 인덱스 열기6.6 인덱스 템플릿6.6.1 컴포저블(인덱스) 템플릿 만들기6.6.2 컴포넌트 템플릿 생성6.7 인덱스 모니터링 및 관리6.7.1 인덱스 통계6.7.2 다중 인덱스 및 통계6.8 고급 작업6.8.1 인덱스 분할6.8.2 인덱스 축소6.8.3 인덱스 별칭 롤오버6.9 인덱스 수명 주기 관리6.9.1 인덱스 수명 주기6.9.2 인덱스 수명 주기 수동 관리6.9.3 롤오버가 포함된 수명 주기요약7장 텍스트 분석 7.1 개요7.1.1 구조화되지 않은 데이터 쿼리7.1.2 분석기가 구원해 주다7.2 분석기 모듈7.2.1 토큰화7.2.2 정규화7.2.3 분석기 구조7.2.4 분석기 테스트7.3 내장 분석기7.3.1 standard 분석기7.3.2 simple 분석기7.3.3 whitespace 분석기7.3.4 keyword 분석기7.3.5 fingerprint 분석기7.3.6 pattern 분석기7.3.7 언어 분석기7.4 맞춤형 분석기7.4.1 고급 맞춤형7.5 분석기 지정7.5.1 인덱싱을 위한 분석기7.5.2 검색용 분석기7.6 문자 필터7.6.1 HTML 스트립(hmtl_strip) 필터7.6.2 매핑 문자 필터7.6.3 파일을 통한 매핑7.6.4 pattern_replace 문자 필터7.7 토크나이저7.7.1 standard 토크나이저7.7.2 ngram과 edge_ngram 토크나이저7.7.3 기타 토크나이저7.8 토큰 필터7.8.1 스테머 필터7.8.2 shingle 필터7.8.3 synonym 필터요약8장 검색 소개 8.1 개요8.2 검색은 어떻게 작동할까?8.3 영화 샘플 데이터8.4 검색 기본 사항8.4.1 _search 엔드포인트8.4.2 쿼리와 필터 컨텍스트8.5 요청과 응답 분석8.5.1 검색 요청8.5.2 검색 응답8.6 URI 요청 8.6.1 제목으로 영화 검색하기8.6.2 특정 영화 검색하기8.6.3 추가 매개변수8.6.4 쿼리 DSL로 URI 요청 지원8.7 쿼리 DSL8.7.1 샘플 쿼리8.7.2 cURL에 대한 DSL 쿼리8.7.3 집계를 위한 쿼리 DSL8.7.4 리프 및 복합 쿼리8.8 검색 기능8.8.1 페이지 매김8.8.2 강조 표시8.8.3 관련성 점수 설명8.8.4 정렬8.8.5 결과 조작8.8.6 인덱스 및 데이터 스트림 검색요약9장 텀 수준 검색 9.1 텀 수준 검색 개요9.1.1 텀 수준 쿼리는 분석되지 않는다9.1.2 텀 수준 쿼리 예9.2 term 쿼리9.2.1 텍스트 필드에 대한 term 쿼리9.2.2 term 쿼리 예시9.2.3 간소화된 텀 수준 쿼리9.3 terms 쿼리9.3.1 terms 쿼리의 예9.3.2 terms 룩업 쿼리9.4 ids 쿼리9.5 exists 쿼리9.6 range 쿼리9.7 wildcard 쿼리9.8 prefix 쿼리9.8.1 간소화 버전 쿼리9.8.2 prefix 쿼리 속도 향상9.9 fuzzy 쿼리요약10장 풀텍스트 검색10.1 개요10.1.1 정밀도10.1.2 재현율10.2 샘플 데이터10.3 match_all 쿼리10.3.1 match_all 쿼리 작성10.3.2 match_all 쿼리의 간소화 버전10.4 match_none 쿼리10.5 match 쿼리10.5.1 match 쿼리의 형식10.5.2 match 쿼리를 사용해 검색10.5.3 match 쿼리 분석10.5.4 여러 단어 검색10.5.5 최소한 몇 단어 일치10.5.6 fuzziness 키워드를 사용한 오타 수정10.6 match_phrase 쿼리10.7 match_phrase_prefix 쿼리10.8 multi_match 쿼리10.8.1 베스트 필드10.8.2 dis_max 쿼리10.8.3 타이브레이커10.8.4 개별 필드 부스팅10.9 query_string 쿼리10.9.1 query_string 쿼리의 필드10.9.2 기본 연산자10.9.3 구문이 포함된 query_string 쿼리10.10 fuzzy 쿼리10.11 간단한 문자열 쿼리10.12 simple_query_string 쿼리요약11장 복합 쿼리 11.1 제품 데이터 샘플11.1.1 products 스키마11.1.2 products 인덱싱11.2 복합 쿼리11.3 bool 쿼리11.3.1 bool 쿼리 구조11.3.2 must 절11.3.3 must 절 강화11.3.4 must_not 절11.3.5 must_not 절 개선11.3.6 should 절11.3.7 filter 절11.3.8 모든 절 결합11.3.9 명명된 쿼리11.4 상수 점수11.5 부스팅 쿼리11.6 디스정션 맥스(dis_max) 쿼리11.7 function_score 쿼리11.7.1 random_score 함수11.7.2 script_score 함수11.7.3 field_value_factor 함수11.7.4 함수 점수의 결합요약12장 고급 검색 12.1 위치 검색 소개12.1.1 bounding_box 쿼리12.1.2 geo_distance 쿼리12.1.3 geo_shape 쿼리12.2 지리 공간 데이터 타입12.2.1 geo_point 데이터 타입12.2.2 geo_shape 데이터 타입12.3 지리 공간 쿼리12.4 geo_bounding_box 쿼리12.5 geo_distance 쿼리12.6 geo_shape 쿼리12.7 shape 쿼리12.8 span 쿼리12.8.1 샘플 데이터12.8.2 span_first 쿼리12.8.3 span_near 쿼리12.8.4 span_within 쿼리12.8.5 span_or 쿼리12.9 특수 쿼리12.9.1 distance_feature 쿼리12.9.2 pinned 쿼리12.9.3 more_like_this 쿼리12.9.4 percolate 쿼리요약13장 집계 13.1 개요13.1.1 엔드포인트와 구문13.1.2 검색 및 집계 결합13.1.3 다중 및 중첩 집계13.1.4 결과 무시13.2 메트릭 집계13.2.1 샘플 데이터13.2.2 value_count 메트릭13.2.3 avg 메트릭13.2.4 sum 메트릭13.2.5 min 및 max 메트릭13.2.6 stats 메트릭13.2.7 extended_stats 메트릭13.2.8 cardinality 메트릭13.3 버킷 집계13.3.1 히스토그램13.3.2 자식 수준 집계13.3.3 사용자 정의 범위 집계13.3.4 텀즈 집계13.3.5 다중 텀즈 집계13.4 부모 및 형제 집계13.4.1 부모 집계13.4.2 형제 집계13.5 파이프라인 집계13.5.1 파이프라인 집계 유형13.5.2 샘플 데이터13.5.3 파이프라인 집계 구문13.5.4 사용 가능한 파이프라인 집계13.5.5 cumulative_sum 부모 집계13.5.6 max_bucket 및 min_bucket 형제 파이프라인 집계요약14장 관리자14.1 클러스터 확장14.1.1 클러스터에 노드 추가14.1.2 클러스터 상태14.1.3 읽기 처리량 증가14.2 노드 통신14.3 샤드 크기 조정14.3.1 단일 인덱스 설정14.3.2 다중 인덱스 설정14.4 스냅숏14.4.1 시작하기14.4.2 스냅숏 저장소 등록14.4.3 스냅숏 생성14.4.4 스냅숏 복원14.4.5 스냅숏 삭제14.4.6 스냅숏 자동화14.5 고급 구성14.5.1 기본 구성 파일14.5.2 로깅 옵션14.5.3 자바 가상 머신 옵션14.6 클러스터 마스터14.6.1 마스터 노드14.6.2 마스터 선출14.6.3 클러스터 상태14.6.4 쿼럼14.6.5 스플릿 브레인 문제14.6.6 전용 마스터 노드요약15장 성능 및 문제 해결 15.1 검색과 속도 문제15.1.1 최신 하드웨어15.1.2 도큐먼트 모델링15.1.3 text 타입 대신 keyword 타입 선택15.2 인덱스 속도 문제15.2.1 시스템 생성 식별자15.2.2 벌크 요청15.2.3 새로 고침 빈도 조정15.3 불안정한 클러스터15.3.1 클러스터가 GREEN이 아니다15.3.2 할당되지 않은 샤드15.3.3 디스크 사용량 임곗값15.4 서킷 브레이커15.5 마무리
|
Madhusudhan Konda
|
◈ 이 책에서 다루는 내용 ◈◆ 검색 아키텍처 이해◆ 풀텍스트와 텀 수준 검색 쿼리◆ 분석 및 집계◆ 키바나에서의 고수준 시각화◆ 클러스터 구성, 확장 및 튜닝◈ 이 책의 대상 독자 ◈이 책은 일래스틱서치와 그 실용적인 응용에 대해 깊이 있는 이해를 얻고자 하는 모든 이에게 귀중한 자원이 될 것이다. 특히 다음과 같은 독자가 읽고 혜택을 얻을 수 있다.◆ 일래스틱서치 분야에서 초보자이며 기본 작동 원리를 이해하고자 하는 개발자, 아키텍트, 분석가, 관리자, 프로덕트 오너◆ 데이터 파이프라인에서 일래스틱서치를 구축해 실시간 데이터 분석 및 처리를 수행하고자 하는 데이터 과학자◆ 대규모 데이터베이스를 유지 관리하며 일래스틱서치를 사용해 데이터 검색 효율성과 시스템 성능을 향상시키고자 하는 시스템 관리자◆ 클라이언트 프로젝트에서 일래스틱서치를 추천하고 전략적인 IT 결정을 내리기 위해 이를 이해해야 하는 IT 컨설턴트 또는 기술 고문◆ 일래스틱서치가 운영 효율성을 높이거나 고객에게 추가 가치를 제공하는 방법을 이해하고자 하는 기술에 정통한 비즈니스 오너◆ 컴퓨터 과학, 데이터 과학 또는 관련 분야를 전공하며 빅데이터 기술을 공부하고 검색 기술에 관심이 있는 학생 및 학술 연구자◆ 대규모 데이터를 처리하며 일래스틱서치를 사용해 검색 기능(풀텍스트, 퍼지, 텀 수준 검색 및 기타 복잡한 검색 기능 포함)을 향상시키고자 하는 개인◆ 일래스틱서치 클러스터와 통신하는 마이크로서비스를 설계하고 개발하려는 일래스틱서치 아키텍트, 개발자 또는 분석가 지망생◈ 옮긴이의 말 ◈데이터가 폭발적으로 증가하고 그 안에 감춰진 정보의 중요성이 더욱 강조되는 시대에, 데이 터 검색과 분석의 효율성은 그 어느 때보다 중요한 주제가 됐다. 이러한 요구를 충족시키는 도구 중 하나로, 일래스틱서치는 놀라운 성능과 유연성으로 많은 사랑을 받고 있다. 일래스틱서치는 단순한 검색엔진 그 이상이다. 강력한 분산 처리 기능과 다양한 분석 도 구를 제공하며, 실시간 데이터 처리 및 대규모 데이터 관리에 특화된 기능을 갖추고 있어 현 대 데이터 중심 애플리케이션의 핵심 역할을 한다. 이번에 번역하게 된 『Elasticsearch in Action 2/e』은 기능과 활용법을 명쾌하고 실용적으로 설명하는 가이드다. 이 책은 단순한 기술 설명서를 넘어 독자들이 실제 프로젝트에서 일래스틱서치를 효과적으로 활용할 수 있도록 돕는 실질적인 사례와 조언을 제공하며, 초보자에게는 일래스틱서치의 핵심 개념과 사용법을, 경험자에게는 더 나은 활용법과 고급 기능을 탐구할 기회를 제공한다. 번역 과정에서는 원서의 내용을 최대한 자연스럽게 전달하는 데 중점을 뒀다. 특히 기술 용어의 경우 국내 독자들이 더 쉽게 이해할 수 있도록 필요한 경우 원어 발음 그대로 한국어 로 옮겨 적었으며, 한국어로 번역한 일부 단어에도 원어를 병기해 이해를 돕도록 했다. 이 책이 일래스틱서치를 처음 접하는 독자뿐만 아니라 이미 사용 중인 독자들에게도 실질적인 도움을 주고, 더 나아가 검색과 데이터 처리의 새로운 가능성을 탐구하는 데 영감을 줄 수 있기를 바란다.
|