# Elastic 가이드 북

> 이 가이드북은 출판을 위해 집필중이던 내용을 Elastic을 처음 시작하시는 분들께 도움이 되고 커뮤니티와 함께 완성 해 나가려는 목적으로 공개하게 되었습니다. 모든 문서에 대한 저작권은 저자인 [**김종민**](http://kimjmin.net)에게 있으며 허가되지 않은 무단 복제나 배포 및 출판을 금지합니다. 본 문서의 내용 및 도표들을 인용하고자 하는 경우 출처를 명시하고 **김종민(<kimjmin@gmail.com>)**&#xC5D0;게 사용 내용을 알려주시기 바랍니다.

## 목차

* [1. 서문](https://esbook.kimjmin.net/01-overview)
  * [1.1 Elastic Stack 소개](https://esbook.kimjmin.net/01-overview/1.1-elastic-stack)
    * [1.1.1 Elasticsearch](https://esbook.kimjmin.net/01-overview/1.1-elastic-stack/1.1.1-elasticsearch)
    * [1.1.2 Logstash](https://esbook.kimjmin.net/01-overview/1.1-elastic-stack/1.1.2-logstash)
    * [1.1.3 Kibana](https://esbook.kimjmin.net/01-overview/1.1-elastic-stack/1.1.3-kibana)
    * [1.1.4 Beats](https://esbook.kimjmin.net/01-overview/1.1-elastic-stack/1.1.4-beats)
* [2. Elasticsearch 시작하기](https://esbook.kimjmin.net/02-install)
  * [2.1 데이터 색인](https://esbook.kimjmin.net/02-install/2.1)
  * [2.2 설치 및 실행](https://esbook.kimjmin.net/02-install/2.2)
    * [2.2.1 다운로드 설치 및 실행](https://esbook.kimjmin.net/02-install/2.2/2.2.1-download-install)
    * [2.2.2 Unix RPM (yum) 설치 및 실행](https://esbook.kimjmin.net/02-install/2.2/2.2.2-unix-rpm-yum)
    * [2.2.3 윈도우 운영체제에서 MSI 파일로 설치](https://esbook.kimjmin.net/02-install/2.2/2.2.3-msi)
  * [2.3 elasticsearch 환경 설정](https://esbook.kimjmin.net/02-install/2.3-elasticsearch)
    * [2.3.1 jvm.options](https://esbook.kimjmin.net/02-install/2.3-elasticsearch/2.3.1-jvm.options)
    * [2.3.2 elasticsearch.yml](https://esbook.kimjmin.net/02-install/2.3-elasticsearch/2.3.2-elasticsearch.yml)
    * [2.3.3 노드의 역할 : master, data, ingest, ml](https://esbook.kimjmin.net/02-install/2.3-elasticsearch/2.3.3-node-settings)
    * [2.3.4 커맨드 라인 설정](https://esbook.kimjmin.net/02-install/2.3-elasticsearch/2.3.4-cofig-on-start-command)
* [3. Elasticsearch 시스템 구조](https://esbook.kimjmin.net/03-cluster)
  * [3.1 클러스터 구성](https://esbook.kimjmin.net/03-cluster/3.1-cluster-settings)
  * [3.2 인덱스와 샤드 - Index & Shards](https://esbook.kimjmin.net/03-cluster/3.2-index-and-shards)
  * [3.3 마스터 노드와 데이터 노드 - Master & Data Nodes](https://esbook.kimjmin.net/03-cluster/3.3-master-and-data-nodes)
* [4. Elasticsearch 데이터 처리](https://esbook.kimjmin.net/04-data)
  * [4.1 REST API](https://esbook.kimjmin.net/04-data/4.1-rest-api)
  * [4.2 CRUD - 입력, 조회, 수정, 삭제](https://esbook.kimjmin.net/04-data/4.2-crud)
  * [4.3 벌크 API - \_bulk API](https://esbook.kimjmin.net/04-data/4.3-_bulk)
  * [4.4 검색 API - \_search API](https://esbook.kimjmin.net/04-data/4.4-_search)
* [5. 검색과 쿼리 -  Query DSL](https://esbook.kimjmin.net/05-search)
  * [5.1 풀 텍스트 쿼리 - Full Text Query](https://esbook.kimjmin.net/05-search/5.1-query-dsl)
  * [5.2 Bool 복합 쿼리 - Bool Query](https://esbook.kimjmin.net/05-search/5.2-bool)
  * [5.3 정확도 - Relevancy](https://esbook.kimjmin.net/05-search/5.3-relevancy)
  * [5.4 Bool : Should](https://esbook.kimjmin.net/05-search/5.4-keyword)
  * [5.5 정확값 쿼리 - Exact Value Query](https://esbook.kimjmin.net/05-search/5.5-exact-value)
  * [5.6 범위 쿼리 - Range Query](https://esbook.kimjmin.net/05-search/5.6-range)
* [6. 데이터 색인과 텍스트 분석](https://esbook.kimjmin.net/06-text-analysis)
  * [6.1 역 인덱스 - Inverted Index](https://esbook.kimjmin.net/06-text-analysis/6.1-indexing-data)
  * [6.2 텍스트 분석 - Text Analysis](https://esbook.kimjmin.net/06-text-analysis/6.2-text-analysis)
  * [6.3 애널라이저 - Analyzer](https://esbook.kimjmin.net/06-text-analysis/6.3-analyzer-1)
    * [6.3.1 \_analyze API](https://esbook.kimjmin.net/06-text-analysis/6.3-analyzer-1/6.3-analyzer)
    * [6.3.2 Term 쿼리](https://esbook.kimjmin.net/06-text-analysis/6.3-analyzer-1/6.3.1-term)
    * [6.3.3 사용자 정의 애널라이저 - Custom Analyzer](https://esbook.kimjmin.net/06-text-analysis/6.3-analyzer-1/6.4-custom-analyzer)
    * [6.3.4 텀 벡터 - \_termvectors API](https://esbook.kimjmin.net/06-text-analysis/6.3-analyzer-1/6.4.1-_termvectors-api)
  * [6.4 캐릭터 필터 - Character Filter](https://esbook.kimjmin.net/06-text-analysis/6.4-character-filter)
    * [6.4.1 HTML Strip](https://esbook.kimjmin.net/06-text-analysis/6.4-character-filter/6.4.1-html-strip)
    * [6.4.2 Mapping](https://esbook.kimjmin.net/06-text-analysis/6.4-character-filter/6.4.2-mapping)
    * [6.4.3 Pattern Replace](https://esbook.kimjmin.net/06-text-analysis/6.4-character-filter/6.4.3-pattern-replace)
  * [6.5 토크나이저 - Tokenizer](https://esbook.kimjmin.net/06-text-analysis/6.5-tokenizer)
    * [6.5.1 Standard, Letter, Whitespace](https://esbook.kimjmin.net/06-text-analysis/6.5-tokenizer/6.5.1-standard-letter-whitespace)
    * [6.5.2 UAX URL Email](https://esbook.kimjmin.net/06-text-analysis/6.5-tokenizer/6.5.2-uax-url-email)
    * [6.5.3 Pattern](https://esbook.kimjmin.net/06-text-analysis/6.5-tokenizer/6.5.3-pattern)
    * [6.5.4 Path Hierarchy](https://esbook.kimjmin.net/06-text-analysis/6.5-tokenizer/6.5.4-path-hierarchy)
  * [6.6 토큰 필터 - Token Filter](https://esbook.kimjmin.net/06-text-analysis/6.6-token-filter)
    * [6.6.1 Lowercase, Uppercase](https://esbook.kimjmin.net/06-text-analysis/6.6-token-filter/6.6.1-lowercase-uppercase)
    * [6.6.2 Stop](https://esbook.kimjmin.net/06-text-analysis/6.6-token-filter/6.6.2-stop)
    * [6.6.3 Synonym](https://esbook.kimjmin.net/06-text-analysis/6.6-token-filter/6.6.3-synonym)
    * [6.6.4 NGram, Edge NGram, Shingle](https://esbook.kimjmin.net/06-text-analysis/6.6-token-filter/6.6.4-ngram-edge-ngram-shingle)
    * [6.6.5 Unique](https://esbook.kimjmin.net/06-text-analysis/6.6-token-filter/6.6.5-unique)
  * [6.7 형태소 분석 - Stemming](https://esbook.kimjmin.net/06-text-analysis/6.7-stemming)
    * [6.7.1 Snowball](https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.1-snowball)
    * [6.7.2 노리 (nori) 한글 형태소 분석기](https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.2-nori)
* [7. 인덱스 설정과 매핑 - Settings & Mappings](https://esbook.kimjmin.net/07-settings-and-mappings)
  * [7.1 설정 - Settings](https://esbook.kimjmin.net/07-settings-and-mappings/7.1-settings)
  * [7.2 매핑 - Mappings](https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings)
    * [7.2.1 문자열 - text, keyword](https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings/7.2.1)
    * [7.2.2 숫자 - long, double ...](https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings/7.2.2)
    * [7.2.3 날짜 - date](https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings/7.2.3-date)
    * [7.2.4 불리언 - boolean](https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings/7.2.4-boolean)
    * [7.2.5 Object 와 Nested](https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings/7.2.5-object-nested)
    * [7.2.6 위치 정보 - Geo](https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings/7.2.6-geo)
    * [7.2.7 기타 필드 타입 - IP, Range, Binary](https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings/7.2.7-ip-range-binary)
  * [7.3 멀티 (다중) 필드 - Multi Field](https://esbook.kimjmin.net/07-settings-and-mappings/7.3-multi-field)
* [8. 집계 - Aggregations](https://esbook.kimjmin.net/08-aggregations)
  * [8.1 메트릭 - Metrics Aggregations](https://esbook.kimjmin.net/08-aggregations/8.1-metrics-aggregations)
  * [8.2 버킷 - Bucket Aggregations](https://esbook.kimjmin.net/08-aggregations/8.2-bucket-aggregations)
  * [8.3 하위 - sub-aggregations](https://esbook.kimjmin.net/08-aggregations/8.3-aggregations)
  * [8.4 파이프라인 - Pipeline Aggregations](https://esbook.kimjmin.net/08-aggregations/8.4-pipeline-aggregations)

{% hint style="info" %}
&#x20; 이 가이드북에 있는 대부분의 내용은 [Elastic 공식 도큐먼트](https://www.elastic.co/guide/index.html)를 참고하여 작성되었습니다.
{% endhint %}
