DevOps

[OpenSearch] Index document API - OpenSearch에 document 직접 추가하기

Jㅐ둥이 2025. 4. 1. 00:45
반응형

안녕하세요. 오늘은 OpenSearch에 Index document API를 이용해서 document를 직접 추가하는 방법을 정리해보겠습니다.

 

0. 어쩌다가 OpenSearch에 데이터를 직접 추가하게 되었나요?

OpenSearch의 Alerting, Ingest pipeline 기능을 시험해보고 싶은데 마땅한 로그가 없더라고요.

 

그래서 document를 직접 만들어서 추가하는 방법을 찾아보게 되었습니다.

 

1. Index document API

PUT <index>/_doc/<_id>
POST <index>/_doc

PUT <index>/_create/<_id>
POST <index>/_create/<_id>

 

PUT <index>/_doc/<_id> API를 사용하면 <index>에 <_id>를 가진 document를 생성하거나 수정할 수 있습니다.

<_id>를 가진 문서가 기존에 존재하지 않았다면 생성하고 존재한다면 수정합니다.

 

POST <index>/_doc  API를 사용하면 <_id>를 작성할 필요 없이 자동으로 생성해줍니다.

 

<index>/_create/<_id>는 주어진 <_id>를 가진 document가 없을 때만 정상적으로 동작합니다.

PUT, POST 메소드와 상관 없이 동작이 똑같습니다.

 

테스트용 document를 생성하는 방법이 여러가지 있는데

저는 POST <index>/_doc API를 사용하는 것이 편하더라고요!

 

다음과 같이 OpenSearch 서버로 요청을 보내면 됩니다.

POST test-index/_doc
{
  "@timestamp": "2025-03-30T16:45:17.735Z",
  "msg": "테스트 메시지",
  "test-field1": "테스트 값1",
  "test-field2": "테스트 값2",
  "test-field3": "테스트 값3"
}

 

2. OpenSearch Dev Tools

위에서 보여줬던 예시 요청을 서버로 어떻게 전송하실 건가요?

curl 명령어를 이용할 수도 있고, Postman 같은 툴을 사용할 수 있지만 OpenSearch Dev Tools의 사용을 추천드립니다.

 

OpenSearch Dashboard에 접속하고 사이드탭을 열어서 쭉 내려보면 Dev Tools를 찾을 수 있습니다.

OpenSearch Dashboard의 사이드탭

 

Dev Tools 페이지에 접속하면 다음과 같이 요청을 작성하고 ▶버튼을 클릭하면 OpenSearch 서버로 요청이 전송됩니다.

OpenSearch Dev Tools 사용

 

 

반응형