[Elasticsearch] 데이터 처리

임유진·2025년 7월 21일

클라우드/인프라

목록 보기
5/25
post-thumbnail

1. Elasticsearch REST API

  • 기본 구조

    • Elasticsearch는 RESTful HTTP API를 통해 모든 작업을 수행.
    • 주요 메서드는 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 포맷을 간편하게 하거나 특정 필드만 응답받을 수 있음.

2. CRUD (Document-level Operations)

  • 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 응답.

3. Batch Operations (_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 권장.

4. Search (_search API)

  • 기본 검색

    • GET /index/_search?q=user:kim 또는 본문으로 DSL 사용:
      {
        "query": {
          "match": { "message": "hello world" }
        }
      }
  • 검색 관련 주요 기능

    • Pagination: from, size 설정.
    • 하이라이팅: 일치 부분 강조(highlight 블록).
    • 정렬: sort에 필드명 또는 _score.
    • 필터링: bool 쿼리(must, filter, should, must_not).
    • 집계(Aggregations): aggs 블록으로 그룹별 통계, 히스토그램 등.
  • 실행 옵션

    • explain=true: 점수 산출 방식 상세 설명.
    • profile=true: 쿼리 실행 성능 분석.
    • search_type=dfs_query_then_fetch 등 특정 실행 방식 지정 가능.

전체 요약

항목주요 내용
REST APIHTTP 메서드+URL 조합으로 모든 기능 수행, JSON 기반, / 구조 계층적 API
CRUD문서 생성, 읽기, 수정, 삭제 기본 작업—ID 지정 가능/자동 생성, partial update/upsert 지원
_bulk대량 문서 작업 효율적 실행—모든 작업을 한 요청으로 묶기, 오류 및 성능 관리
_search다양한 쿼리(DLS), 페이징, 필터링, 정렬, 하이라이트, 집계 기능 포함한 강력 검색 기능
profile
말하는 고구마

0개의 댓글