id를 자동으로 생성해서 저장
# 도큐먼트 저장 (id 자동 생성)
# POST /{인덱스명}/_doc
POST /users/_doc
{
"name": "Jaeseong",
"age": 20,
"is_active": true
}
# 잘 저장됐는 지 확인하기
GET /users/_search
id를 직접 지정해서 저장
# 도큐먼트 저장 (id 직접 지정)
# POST /{인덱스명}/_create/{id}
POST /users/**_create**/1
{
"name": "jscode",
"age": 30,
"is_active": true
}
# 잘 저장됐는 지 확인하기
GET /users/_search
# 이미 존재하는 id로 데이터 저장하면 어떻게 되는 지 확인하기
POST /users/_create/1
{
"name": "jscode",
"age": 30,
"is_active": true
}
id를 직접 지정해서 저장 (이미 id가 존재한다면 데이터 덮어씌움) = UPSERT
# 도큐먼트 저장 및 업데이트
# PUT /{인덱스명}/_doc/{id}
**PUT** /users/_doc/2
{
"name": "jason",
"age": 30,
"is_active": true
}
# 잘 저장됐는 지 확인하기
GET /users/_search
# 이미 존재하는 id로 데이터 저장하면 어떻게 되는 지 확인하기
POST /users/_doc/2
{
"name": "jason2",
"age": 30,
"is_active": true
}
# 어떻게 됐는 지 확인하기
GET /users/_search
**** HTTP 메서드가 POST가 아니라 PUT임에 주의하자**
(특정 인덱스의) 모든 도큐먼트 조회
# GET /{인덱스명}/_search
GET /users/_search
id로 특정 도큐먼트 조회
# 특정 도큐먼트 조회
# GET /{index}/_doc/{id}
GET /users/_doc/1
GET /users/_doc/2
<aside> 👨🏻🏫
이 외에도 다양한 조건을 활용해 데이터를 조회하는 방법이 있다. 하지만 이 부분은 나중에 자세히 다룰 예정이다. 우선 기본적인 기능을 빠르게 배워 실전에서 빨리 써먹어보자. 그래야 전체 흐름을 빨리 파악할 수 있다.
</aside>
도큐먼트를 통째로 덮어씌우기
# 기존 도큐먼트 확인
GET /users/_doc/1
# 특정 도큐먼트 수정
# 이 API는 데이터 저장 시에도 사용하는 API이다. (바로 위에서 언급했었음)
# PUT /{인덱스명}/_doc/{id}
**PUT** /users/_doc/1
{
"name": "new"
}
# 수정됐는 지 확인하기
GET /users/_doc/1
일부 필드만 수정
# 기존 도큐먼트 확인
GET /users/_doc/2
# 특정 도큐먼트 수정
# POST /{인덱스명}/_update/{id}
POST /users/_update/2
{
"doc": {
"age": 10,
"is_active": false
}
}
# 수정됐는 지 확인하기
GET /users/_doc/2
# 기존 도큐먼트 확인
GET /users/_doc/2
# id로 도큐먼트 삭제하기
# DELETE /{인덱스명}/_doc/{id}
DELETE /users/_doc/2
# 삭제됐는 지 확인하기
GET /users/_doc/2
<aside> 👨🏻🏫
Elasticsearch는 데이터베이스의 일종이라고 설명했었다. 데이터베이스의 핵심 기능인 CRUD(저장, 조회, 수정, 삭제)를 알아봤다. 이 기능만 가지고 실제 프로젝트에서 써먹어보자.
</aside>