Database/Elastic Search

Windows) Elasticsearch 2) Postman 설치하기 및 CRUD 예제

📝 작성 : 2021.05.13  ⏱ 수정 : 
반응형

ElasticSearch를 활용하기 위해 Tool 을 설치합니다.

 

Oracle에는 SQL Developer

MYSQL에는 Sequel Pro

MongoDB는 Robo 3T 가 있죠

 

이번에는 Api 를 테스트하기 위해 Postman을 설치할 예정입니다.

https://www.postman.com/downloads/

 

Download Postman | Try Postman for Free

Try Postman for free! Join 13 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.

www.postman.com

 

위의 링크에서 다운 받습니다.

 

 

본인의 OS 에 맞게 다운받습니다. 저는 일단 windows에서 먼저 설치를 해볼 예정입니다.

 

동의하는 절차 따위 물어보지 않고 쿨하게 설치되네요.

 

윈도우 어플리케이션 답지 않은 세련된 디자인입니다. Mac OS 버전이 기대가 되네요.

 

저는 회원가입 하고 싶진 않아서 Skip and go to the app 을 클릭했습니다.

 

 

Create a request를 클릭합니다.

 

 

request를 보낼 준비가 되었습니다.

 

ElasticSearch 저장 구조에는 Index, Type, Document, Field, Mapping 가 있습니다.

RDBMS와 비교하면,

Index -> Database

Type -> Table

Document -> row

Field -> column

Mapping -< schema


2021년 6월 7일 추가  : Type은 Deprecated 된 듯 합니다.

제가 아래에서 사용하는 것 처럼 사용하면 후에 as the final mapping would have more than 1 type 에러를 마주하게 됩니다.

"new indices will only allow a single type" 이제 하나의 index는 하나의 Type 만 가집니다. {Type} 자리를 생략하고 사용하고, Index를 테이블 개념으로 생각하면 될 것 같습니다.


http://{Node:PortNumber}/{Index}/{Type}

 

ElasticSearch REST API URL format은 위와 같습니다. index는 소문자여야 합니다.

 

localhost:9200/gaia/message/1 로

{
    "sender" : "kkobuk",
    "message" : "한번 보내본다."
}

위 요청을 post 방식으로 보내봤더니 

아래의 에러가 나왔습니다.

{
    "error": "Content-Type header [text/plain] is not supported",
    "status": 406
}

 

 

Mime을 JSON으로 바꿔서 다시 해봅니다.

 

 

이번엔 백년 만년을 기다려도 Sending request..만 기다렸는데 알고보니 서버가 살짝 멈춰있었습니다.다시 정신 차리게 하고 난뒤 확인하니

 

서버에는 위와 같은 로고가 남아있고요

 

 

위와 같은 결과를 받았습니다

gaia 인덱스의 message 타입에 1이라는 아이디로 저장했다는 의미입니다.

 

 

GET으로 body를 제외한 같은 요청을 보내 방금 등록한 데이터를 읽어봅니다.

 

 

 

업데이트는 PUT 메서드를 이용해서 합니다.

 

역시나 잘 수정되어 있는 것을 확인 할 수 있습니다.

 

이번에는 전체 검색을 해봅니다

localhost:9200/gaia/message/_search

생각하지 못했는데 수정 전 내용도 나오네요

 

localhost:9200/gaia/message/_search?q=message:수정해본다.

q 파라미터를 이용해 검색도 해봅니다.

 

마무리는 역시 DELETE 메서드로 삭제를 해주는게 좋겠죠.

 

 

이상입니다. 생각보다 간단해 보이는데 중간중간 삽질이 꽤 많았습니다.

 

엘라스틱서치는 기본적으로 로컬호스트 접속만을 허용합니다. 외부접속을 허용하려면 아래 글을 참고해주세요.

https://shanepark.tistory.com/110

 

Elasticsearch 3) Elasticsearch 외부 접속 허용하기

저는 집에서 DB 서버를 돌리고 외부에서 접속 할 예정입니다. MongoDB도 그랬는데 Elasticsearch도 기본적으로는 외부 접속이 막혀있었습니다.  127.0.0.1:9200 로 바인딩 되어있는 것을 변경해 주어야 합

shanepark.tistory.com

 

반응형