Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- backend
- kibana
- 엘라스틱서치
- 백엔드
- 이슈관리
- Database
- redmine
- frontend
- 프로젝트관리
- 인덱스
- 검색
- 일감관리
- 비전공개발자
- 자바
- java
- 레드마인
- spring aop
- 오라클
- elasticsearch
- Si
- AOP
- 스프링
- 개발자
- PM
- 데이터베이스
- 웹프론트
- db
- spring
- PreparedStatement
- It
Archives
- Today
- Total
리타의 저장소
ES | Elasticsearch에 인덱스를 만들고, 매핑해보자. 본문

인덱스 만들기
#이런식으로 만든다.
PUT /users
# 확인
GET /users
# DELETE
DELETE /boards

만약 DELETE 문으로 인덱스를 삭제하게 된다면, not found exception이 뜬다.
"index_not_found_exception",
인덱스에 매핑 정의하기
쉽게 얘기하면 users 라는 인덱스(테이블)에, name, age, is_active라는 컬럼을 정의해준거라고 생각하면 된다.
PUT /users/_mappings
{
"properties" : {
"name" : {"type": "keyword"},
"age" : {"type": "integer"},
"is_active": {"type": "boolean"}
}
}
확인해보면, 삽입이 잘 되어있는 것을 알 수 있다.

인덱스에 데이터 추가 (doc 추가)
POST /users/_doc
{
"name": "Alice",
"age": 28,
"is_active": true
}
POST /users/_doc
{
"name": "bob",
"age": 30,
"is_active": false
}
GET /users/_search
GET으로 데이터를 잡아보면 아래와 같이 잘 들어가 있는 것을 알 수 있다.
{
"took": 26,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 2,
"relation": "eq"
},
"max_score": 1,
"hits": [ // hits => 검색 결과들
{
"_index": "users", // index => index 이릅
"_id": "B1jcvJkBNSKZAhzcAx1z", // elasticsearch가 부여한 고유값
"_score": 1,
"_source": { // source => 원본이 들어있는 필드
"name": "Alice",
"age": 28,
"is_active": true
}
},
{
"_index": "users",
"_id": "CFjcvJkBNSKZAhzcQx23",
"_score": 1,
"_source": {
"name": "bob",
"age": 30,
"is_active": false
}
}
]
}
}
도큐먼트 저장/조회/수정/삭제
// id 지정해서 삽입하기
POST /users/_create/1
{
"name":"jacode",
"age" : 30,
"is_active": true
}
// upsert 하기
// (해당 id값 (2)번 데이터가 없으면 삽입, 있으면 업데이트)
PUT /users/_doc/2
{
"name" :"jason2",
"age": 30,
"is_active":true
}
doc 수정하기 (통째로)
id 1dml doc name 변경.

GET으로 잡아보면, 수정된것을 확인할 수 있다.

doc 수정하기 (일부 필드만)
id 2인 곳의 데이터를 일부 필드만 수정해보자.
우선 현재 id=2 인 곳의 데이터는 아래와 같다.

일부 필드만 수정하려면 POST + _update 조합을 써야한다.
POST /users/_update/2
{
"doc": {
"age":10,
"is_active": false
}
}
확인해보면, 잘 수정이 되어있을 것이다.

doc 삭제하기
DELETE /users/_doc/2
삭제가 잘 됐다.

지금까지는 Tool (Kibana) 상에서 데이터를 조회하고 수정하고 삭제하는 방법을 확인해보았다. 대체로 사실 문법적인 부분만 조금 익히면, 흔하게 사용하는 Database에서 처럼 빠르게 데이터를 파악할 수 있을 것 같아보인다.
다 들었던 강의내용 정리해뒀던 것들을 뒤늦게 블로그에 옮기고 있는데, 그때그때 할걸. 왜 노션에 정리를 했을까. 그냥 블로그에 바로바로 올리면 좋았을 것을..

'Dev > Database' 카테고리의 다른 글
| 오라클 성능 고도화 원리 2 - 인덱스 원리와 활용 (1) | 2026.03.02 |
|---|---|
| ES | Spring Boot에 Elasticsearch 연동하기 (0) | 2025.12.14 |
| ES | Elasticsearch의 기본 용어 정리 (0) | 2025.10.12 |
| ES | Kibana로 Elastic Search 사용하기 (0) | 2025.10.12 |
| ES | Elastic Search의 작동 방식 (0) | 2025.10.12 |