일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- PS
- 시뮬레이션
- 자바PS
- 백준코딩테스트
- 우선순위큐
- spring
- 완전탐색
- 취득후기
- 게더타운시작
- java
- 알고리즘
- 이젠 골드구현도 어렵네..
- COSPROJAVA1급
- COSPRO
- QUICKSTARTGUIDE
- 다익스트라
- 재귀함수
- 백준
- dp
- 세그먼트트리
- DFS
- deque
- YBMCOS
- 01BFS
- GatherTown
- 엘라스틱서치
- 네트워크플로우
- BFS
- 다이나믹프로그래밍
- 구현
- Today
- Total
공부공간
[Elastic Search] ElasticSearch CRUD 본문
엘라스틱 서치의 이해를 위해 용어를 정리하기 위해서, 기존 RelationDB와 비교하면서 외워둡시다.
Elastic Search | Index | Type | Document | Field | Mapping |
Relation DB | DataBase | Table | Row | Column | Schema |
<Elastic Search와 RDB의 용어정리>
또한 엘라스틱 서치는 Restful api를 사용하기때문에
Elastic Search | GET | POST | PUT | DELETE |
Relation DB | SELECT | INSERT | UPDATE | DELETE |
와같이 CRUD명령어가 조금 다릅니다.
그렇다면 엘라스틱서치엔진을 실행시키고, 직접 데이터를 넣어봅시다.
curl -XGET "localhost:9200"
작동이 잘된것을 확인하고, 필요한 인덱스를 생성해 봅시다.
curl -XPUT "localhost:9200/blog"
curl -XPUT "localhost:9200/ Index이름 "
테스트용으로 blog 인덱스를 생성하였습니다. ( index의 이름은 lowercase를 지원합니다 )
이러한 index에 type을 부여하고 데이터를 넣는 방식에는 직접 데이터를 추가하는 것과, 파일형식(json)의 데이터를
_bulk를 통하여 한번에 추가하는 방식이 있습니다.
이번시간에는 간단하게 첫번째 방식으로 데이터를 추가해보겠습니다.
curl -XPOST "localhost:9200/blog/post/1?pretty=true" -d
" {""name"" :"" sangwon"" , ""posttitle"" : ""elastic search beginning""}"
-H "Content-Type: application/json"
데이터를 curl -XPOST로 넣기위한 3가지에 대해서 말씀드리면,
1. curl -XPOST "url 주소 / index 이름 / type 이름 / id 값 / ? pretty "
는 index의 type에 고유한 id 값에 데이터를 넣고, 그 결과를 pretty하게 출력하는 의미입니다.
id를 지정하지않으면 랜덤한 값으로 지정됩니다. 알아보기 쉽게 지정해주세요.
2. -d ( direct )의 지시자로 바로 json형식의 데이터를 정의해줍니다.
이름은 sangwon이고 포스트제목은 Elastic search beginning으로 지정하였습니다.
윈도우 10 에서는 ' {"name":"sangwon"}'이런식의 선언은 bracket error를 발생시킵니다.
큰따옴표 2개로 처리해줍시다. ( 실제 데이터를 이렇게 넣지 않으니 실습용으로만 사용합니다 )
3. Elastic search 5.x 버전 이상부터 헤더의 미디어 타입을 선언하여야합니다.
선언하지 않을시
{"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}
디폴트로설정된 미디어타입이 지원하지 않는다고 뜹니다.
꼭 -H "Content-Type:application/json"을 선언합시다.
이렇게 3개의 줄로 Elastic search에 데이터를 넣을 수 있습니다.
입력된 데이터는
curl -XGET "localhost:9200/blog/post/1?pretty=true"
로도 조회가 가능합니다.
수정과 삭제또한 마찬가지로
수정 )
curl -XPUT "localhost:9200/blog/post/1?pretty"
-d " {""name"":""sangwons""}"
-H "Content-Type:application/json"
curl -XPUT "localhost:9200/ index 이름 / type 이름 / id 값 ?pretty"
-d " {""name"":""sangwons""}" <= 수정 할 데이터
-H "Content-Type:application/json"
수정후 조회 )
삭제 )
curl -XDELETE "localhost:9200/blog/post/1?pretty"
curl -XDELETE "localhost:9200/ index 이름 / type 이름 / id ?pretty"
삭제 후 조회 )
이처럼 기본 curd를 실습해 보았습니다. 실제는 json이나 csv데이터를 대량으로 넣기때문에 _bulk와 --data-binary를
이용하여 넣지만 기본적인 조회메소드를 이해하기위함이였습니다.
'ELK 뽀개기 > ElasticSearch' 카테고리의 다른 글
[Elastic Search] Content-Type header [application/x-www-form-urlencoded] is not supported error (0) | 2020.08.24 |
---|---|
[Elastic Search] Elastic Search란? + window 10에서 Elastic Search 설치 (0) | 2020.08.22 |