개발/ELK

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

parkkingcar 2023. 3. 27. 13:51

 

 

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": "두번째수정"
}