All of My Records

[Elasticsearch] Index CRUD, Document CRUD :: curl 및 kibana 사용

by 캐떠린

엘라스틱서치를 curl 또는 kibana로 조작할 수 있다.

 

먼저 crul로 조작해보자.

 

Index CRUD(Terminal or Ubuntu에서 진행)

Index 생성하기

1. Terminal 창을 열어 Index를 생성하기 전, 이미 존재하는 인덱스인지 확인하기 위해 조회해보자.

# 입력 형식: $ curl -X GET "localhost:9200/인덱스명"
# 들여쓰기된 결과로 조회(보기 좋음): $ curl -X GET "localhost:9200/인덱스명?pretty"
$ curl -X GET "localhost:9200/member"
$ curl -X GET "localhost:9200/member?pretty"

 

2. 'PUT'을 사용하여 인덱스를 생성할 수 있다.

$ curl -X PUT "localhost:9200/member?pretty"

 

Index 삭제하기

1. 'DELETE'를 사용하여 인덱스를 삭제할 수 있다.

$ curl -X DELETE "localhost:9200/member?pretty"

 

2. GET을 날려서 삭제되었는지 확인해보자.

$ curl -X GET "localhost:9200/member?pretty"

 

엘라스틱서치에는 형식이 없다. 비 관계형 데이터베이스이기도 하고, document type의 DB는 형식을 따로 강제적으로 요구하지 않는다.

 

Document CRUD(Ubuntu에서 진행)

이번엔 Document를 조작해보자!

Document == 오라클의 레코드(데이터 1줄)과도 같다.

'PUT'을 사용하여 데이터를 추가/수정한다.

 

Document 추가하기

1. Ubuntu창을 열어 'PUT' 으로 새로운 데이터를 생성 또는 입력한다.

  Document를 저장할 Index가 존재하지 않아도 데이터를 넣으면 자동으로 Index를 생성해준다.

  But 인덱스를 관리하기 위해 우리는 무조건 Index 생성 후, document를 추가할 예정이다!!!

# 입력 형식: $ curl -X PUT "서버주소:포트번호/인덱스/_doc/도큐먼트ID" -H "Content-Type: application/json" -d "데이터"
$ curl -X PUT "localhost:9200/member/_doc/1" -H "Content-Type: application/json" -d '{"name": "홍길동", "age":20}'
$ curl -X PUT "localhost:9200/member/_doc/1" -H "Content-Type: application/json" -d '{"name": "아무개", "age":20}'

동일한 id(id = 1)로 데이터를 넣어서 홍길동의 데이터가 아무개로 덮어씌워졌다. 여기서 'version = 1'은 생성 직후를 의미하며 버전이 높을 수록 수정을 많이 했다는 뜻이기도하다.

 

2. 위와 같이 curl을 사용하여 인덱스 생성/삭제/조회 업무가 가능하지만 가장 편한 방법은 Kibana를 사용하는 것이다.

아래 링크로 접속하여 kibana를 사용해보자!

http://localhost:5601

 

3. Kibana에서 Document 조회는 아래와 같이 할 수 있다.

GET member/_doc/1

 

Kibana 메세지 없애기

위 사진을 보면 키바나 결과창에 약 5줄에 걸쳐 메세지가 출력된다. 걸리적거리니까 없애버리자.

 

1. 먼저 실행중인 Elasticsearch 중단하기

$ sudo systemctl stop elasticsearch

 

2. 아래 명령어 입력하여 *.yml 파일 수정하기

$ sudo vi /etc/elasticsearch/elasticsearch.yml

2번 명령어 입력 전 화면
*.yml 파일 열고 첫 화면

1) 맨 아래로 커서 내린 후, 'O' 입력하여 INSERT 모드로 변경하기

2) '#' 주석 지우고, 아래 명령어 입력

xpack.security.enabled: false

3) esc 누르고 :wq 입력하여 저장 후 명령모드 빠져나가기

 

3. Elasticsearch 다시 실행하기

$ sudo systemctl start elasticsearch

 

4. 이제 에러 메세지가 뜨지 않는다!

 

5. 설정 후에는 아래와 같은 팝업창이 뜨는데 '다시 보지 않음' 선택 후 Dismiss 해주면 다시는 뜨지 않는당.

 

*글 작성에 참고한 내용: 학원 쌤의 열정적인 수업

블로그의 정보

All of My Records

캐떠린

활동하기