본문 바로가기
개발/ELK

[Elasticsearch] CRUD - 데이터 입력, 조회, 삭제, 수정

by parkkingcar 2023. 3. 27.

 

 

1.  입력 (PUT)

 

 

도큐먼트를 입력하는 경우, PUT 매소드를 사용합니다.

 

mydoc 이라는 인덱스에 ID가 1인 도큐먼트를 입력하려면 아래와 같이 작성합니다.

PUT mydoc/_doc/1
{
  "title":"안녕하세요",
  "message":"반갑습니다."
}

 

이전에 ID가 1인 도큐먼트가 없다면 response상에서 result는 created를 반환합니다.

 

이때 다시 동일한 입력을 한다면 ID가 1에 해당하는 도큐먼트가 mydoc인덱스에 존재하기 때문에

 

response상에서 result는 updated를 반환하고 덮어쓰기 됩니다.

 

 

 

 

 

덮어쓰기를 방지하기위해 _doc 대신 _create를 사용해야 합니다.

 

PUT mydoc/_create/1
{
  "title":"안녕하세요",
  "message":"반갑습니다."
}

 

이때 이미 존재하는 도큐먼트가 있으면 response상에서 error를 반환합니다.

 

 

 


 

2.  조회 (GET)

 

 

도큐먼트를 조회하는 경우, GET 매소드를 사용합니다.

 

아래는 mydoc 인덱스에 ID가 1인 도큐먼트를 검색합니다.

GET mydoc/_doc/1

 

 

 

 

mydoc 인덱스의 모든 도큐먼트를 조회하고자 하면 _search를 입력합니다.

 

아래는 mydoc 인덱스에 모든 도큐먼트를 검색합니다.

GET mydoc/_search

 

 

 

데이터 본문 검색으로 title 필드값이 '안녕하세요'인 도큐먼트를 검색하고 싶다면  match 쿼리를 사용합니다.

 

아래는 mydoc 인덱스에 title 필드값이 '안녕하세요'인 도큐먼트를 검색합니다.

GET mydoc/_search
{
	"query": {
      		"match": {
      		  "title": "안녕하세요"
    }
  }
}

 


 

3.  삭제 (DELETE)

 

도큐먼트를 삭제하는 경우, DELETE 매소드를 사용합니다.

 

아래는 mydoc 인덱스에 ID가 1인 도큐먼트를 삭제합니다.

DELETE mydoc/_doc/1

 

 

 

아래는 mydoc 인덱스를 삭제합니다.

DELETE mydoc

 

 


 

4.  수정 (POST)

 

도큐먼트를 수정하는 경우, POST 매소드를 사용합니다.

 

아래는 mydoc 인덱스에 ID가 1인 도큐먼트의 값을 수정합니다.

POST mydoc/_doc/1
{
  "title":"안녕하세요",
  "message":"첫번째수정"
}

 

 

하지만 위와 같이 수정하면 도큐먼트의 모든 필드를 작성해야 합니다.

 

이때, _update를 사용하면 원하는 필드만 수정이 가능합니다.

 

 

아래는 mydoc 인덱스에 ID가 1인 도큐먼트의 message 값을 수정합니다.

POST mydoc/_upDate/1
{
  "message": "두번째수정"
}

 

 

 

'개발 > ELK' 카테고리의 다른 글

Elasticsearch 기본  (0) 2023.05.17
[Logstash] 로그스태시 파이프라인, 필터  (1) 2023.04.11
[Elasticsearch] 집계 쿼리  (0) 2023.04.10
[Elasticsearch] 검색 쿼리  (1) 2023.04.07
[Elasticsearch] 벌크 데이터 bulk API  (0) 2023.03.27

댓글