본문 바로가기
ELK

[ElasticSearch] 데이터 입력, 조회, 수정, 삭제

by 슈슈슉민 2025. 3. 23.

get

curl -XGET -k -u elastic:elastic https://localhost:9200/classes

 

put

curl -XPUT -k -u elastic:elastic https://localhost:9200/classes

index를 생성 할 수 있습니다.

post

curl -XPOST -k -u elastic:elastic -H "Content-Type: application/x-ndjson" https://localhost:9200/class/_doc/1 -d '{"title":"Algorithm","professor":"John"}'

document를 생성 할 수 있습니다. ID가 1인 문서를 추가하는 경우에는 _doc/1 을 붙혀줍니다.

 

curl -XPOST -k -u elastic:elastic https://localhost:9200/class/1/ -d @oneclass.json

file 형식으로도 할 수 있습니다. 파일을 만들고 파일 위치에 가서 명령어를 쳐야 합니다.

 

elastic 의 Bulk API 를 사용하면 JSON 파일의 데이터를 한 번에 넣을 수 있어요.

curl -XPOST -k -u elastic:elastic -H "Content-Type: application/x-ndjson" https://localhost:9200/class/_bulk --data-binary @class.json

 

아래는 예시 자료입니다.

https://github.com/Hongmebuilding/BigData/blob/master/ch01/classes.json

 

BigData/ch01/classes.json at master · Hongmebuilding/BigData

ElasticSearch 실습 자료. Contribute to Hongmebuilding/BigData development by creating an account on GitHub.

github.com

 

delete

curl -XDELETE -k -u elastic:elastic https://localhost:9200/classes

 

update

curl -XPOST -k -u elastic:elastic -H "Content-Type: application/json" https://localhost:9200/class/_update/1 -d '{"doc":{"unit":1}}'

 

index 가 1인 것을 수정할때는 _update/1 을 붙혀줍니다.

 

실습

아까 만들었던 index 1을 확인해봅시다.

curl -XGET -k -u elastic:elastic https://localhost:9200/class/_doc/1

 

문서의 내용에 접근해서 수정하려면 ctx._source 를 써야합니다. unit 이 6이 되었다면 성공입니다.

curl -XPOST -k -u elastic:elastic -H "Content-Type: application/json" https://localhost:9200/class/_update/1 -d '{"script":"ctx._source.unit += 5"}'

 

{ "index" : { "_index" : "classes", "_id" : "1" } }
{"title" : "Machine Learning","Professor" : "Minsuk Heo","major" : "Computer Science","semester" : ["spring", "fall"],"student_count" : 100,"unit" : 3,"rating" : 5, "submit_date" : "2016-01-02", "school_location" : {"lat" : 36.00, "lon" : -120.00}}
{ "index" : { "_index" : "classes", "_id" : "2" } }
{"title" : "Network","Professor" : "Minsuk Heo","major" : "Computer Science","semester" : ["fall"],"student_count" : 50,"unit" : 3,"rating" : 4, "submit_date" : "2016-02-02", "school_location" : {"lat" : 36.00, "lon" : -120.00}}

위 문서의 구조는 index - 1,2,... 이렇게 있다면 각각 title, professor, major.. 등등의 column 이 들어가는 식으로 생겼습니다.

이 문서 중에 2번째를 찾으려면 어떻게 해야할까요?

curl -XGET -k -u elastic:elastic https://localhost:9200/classes/_doc/2

이렇게 _doc 를 이용하여 index 검색을 하면 됩니다.

'ELK' 카테고리의 다른 글

[ElasticSearch] metric aggregation  (0) 2025.03.29
[ElasticSearch] search  (0) 2025.03.23
[ElasticSearch] mapping  (0) 2025.03.23
[ElasticSearch] 실행해보기  (0) 2025.03.23
[ElasticSearch] mac 설치하기  (0) 2025.03.22