기본 구조
GET, POST, PUT, DELETE이며, 결과는 JSON으로 반환.GET /_cluster/health 또는 PUT /my_index 등 단순 URL+메서드 조합으로 실행.엔드포인트의 계층
/_cat, /_cluster, /_nodes, 인덱스(/index/_mapping 등), 문서(/index/_doc/id), 검색(/index/_search) 등 계층별로 API 구조화됨.쿼리 파라미터
?pretty, ?filter_path= 등을 통해 JSON 포맷을 간편하게 하거나 특정 필드만 응답받을 수 있음.Create/Index (PUT 또는 POST)
PUT /index/_doc/1으로 ID 지정 인덱싱, POST는 ID 자동 생성._source 필드 포함 여부, _version, result 상태 정보를 반환.Read (GET)
GET /index/_doc/1 요청 시 found: true/false, _source 내용, _version 반환.Update (POST /_update)
{"doc": {…}} 형식.upsert 옵션 사용 시, 문서가 없을 때 생성도 가능.Delete (DELETE)
DELETE /index/_doc/1으로 문서 삭제.result: deleted 또는 not_found 응답._bulk API)대량 색인 및 수정 한 번에 처리
_bulk 엔드포인트에 액션-메타와 액션-데이터를 줄 단위로 연속 JSON 형식 요청.{ "index": { "_index": "test", "_id": "1" } } { "field": "value" } { "delete": { "_index": "test", "_id": "2" } }
응답요약
took, errors, items[] 배열: 각각의 결과 상태 포함.errors: true일 경우 items[*].error 내 상세 메시지 확인.성능 팁
refresh=false, 최종에 POST /_refresh 권장._search API)기본 검색
GET /index/_search?q=user:kim 또는 본문으로 DSL 사용:{ "query": { "match": { "message": "hello world" } } }
검색 관련 주요 기능
from, size 설정.highlight 블록).sort에 필드명 또는 _score.bool 쿼리(must, filter, should, must_not).aggs 블록으로 그룹별 통계, 히스토그램 등.실행 옵션
explain=true: 점수 산출 방식 상세 설명.profile=true: 쿼리 실행 성능 분석.search_type=dfs_query_then_fetch 등 특정 실행 방식 지정 가능.| 항목 | 주요 내용 |
|---|---|
| REST API | HTTP 메서드+URL 조합으로 모든 기능 수행, JSON 기반, / 구조 계층적 API |
| CRUD | 문서 생성, 읽기, 수정, 삭제 기본 작업—ID 지정 가능/자동 생성, partial update/upsert 지원 |
| _bulk | 대량 문서 작업 효율적 실행—모든 작업을 한 요청으로 묶기, 오류 및 성능 관리 |
| _search | 다양한 쿼리(DLS), 페이징, 필터링, 정렬, 하이라이트, 집계 기능 포함한 강력 검색 기능 |