윈도우 환경으로 실습을 진행한다.
다행히 윈도우 10에서는 curl 기능을 기본으로 제공한다.
엘라스틱 서치 공식 홈페이지에서 설치 후 bin 폴더의 elasticsearch.bat 파일을 실행시켜서 시작할 수 있다.
실행 시 JDK 버전을 비롯해 뭔가들이 촤라락 올라간다. 이제 다른 cmd창으로 elasticsearch를 사용할 수 있다.
elasticsearch의 기본 포트는 9200.
curl -XGET localhost:9200
를 쳐서 제대로 동작하고 있는지 확인해 보자. 아래와 같이 나오면 잘 동작하고 있다는 뜻이다.
1. GET
RDB에서의 select와 같은 포지션이다. 아래는 classes라는 인덱스(RDB의 데이터베이스)를 찾는 명령어이다.
curl -XGET http://localhost:9200/classes?pretty
아직 만들지를 않았으니 못 찾겠다는 내용이다. 윈도우 캡처도구를 써서 캡처한건데 cmd 창은 너무 깨진다.....
?pretty는 json 형식을 예쁘게 보여주는 키워드다. 몽고디비에서도 많이 보던 친구.
2. PUT
RDB에서의 update와 같은 포지션. 위에서 찾는데 실패했던 classes라는 인덱스를 이제 만들어 보자.
curl -XPUT http://localhost:9200/classes?pretty
3. DELETE
RDB의 delete.
curl -XDELETE http://localhost:9200/classes
4. POST
RDB의 update.
엘라스틱 서치 6.0 버전 이상에서는 Rest Request에 ContentType checking이 엄격하게 들어가게 변화되었다.
그래서 기존의 명령어 형식(curl -XPOST localhost:9200/classes/class/1 -d ‘{xxx}')을 사용하면 에러가 뜬다.
curl -XPOSTlocalhost:9200/classes/class/1/ -d '{"title":"Algorithm", "professor":"John"}'
그래서 구글링을 열심히 해서 찾은 결과가 -H "Content-Type: application/json" 이라는 옵션을 붙이면 된다는 것이다.
curl -XPOST -H "Content-Type: application/json" localhost:9200/classes/class/1/ -d '
{"title":"Algorithm", "professor":"John"}'
하지만 안된다... 내 하찮은 구글링으로는 해답을 찾을 수 없었다. 그래서 json파일을 통한 update를 진행했다.
윈도우 환경의 한계인지... 해결방법은 추후에 찾아보겠다.
curl -XPOST -H "Content-Type: application/json" localhost:9200/classes/class/1/ -d @oneclass.json
참고 사이트 : https://www.youtube.com/watch?v=lt6oPHjZMXg&list=PLVNY1HnUlO24LCsgOxR_eK2Yi4sOgH9Pg&index=4
'ELK Stack' 카테고리의 다른 글
[ELK Stack] ELK Stack 오프닝 (0) | 2019.10.11 |
---|