Elasticsearch in Action

도서명:Elasticsearch in Action
저자/출판사:마두수단 콘다/에이콘출판
쪽수:776쪽
출판일:2025-01-31
ISBN:9791161759654
목차
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 도큐먼트 API
5.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 API
5.4.3 스크립트 업데이트
5.4.4 도큐먼트 교체
5.4.5 Upsert
5.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 쿼리 DSL
8.7.1 샘플 쿼리
8.7.2 cURL에 대한 DSL 쿼리
8.7.3 집계를 위한 쿼리 DSL
8.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 마무리