일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ES
- spring boot
- 엘라스틱서치
- API
- database
- JPA
- Baekjoon
- 애자일프로그래밍
- 읽기쉬운코드
- 개발
- 데이터베이스
- 그리디알고리즘
- 코딩테스트
- 그리디
- 애자일기법
- cleancode
- Elasticsearch
- 클린코드
- 애자일
- Spring
- 자바
- 백준
- 스프링
- 프레임워크
- 개발자
- framework
- Java
- 코딩
- 코드
- 알고리즘
- Today
- Total
튼튼발자 개발 성장기🏋️
키바나 설치 본문
키바나는 엘라스틱에서 제공하는 데이터 시각화 프로그램이다. 키바나를 이용하면 엘라스틱에 갯인된 데이터를 검색하거나 문서를 추가하거나 하는 등의 기능을 손쉽게 구현할 수 있다.
bin 디렉토리에 kibana와 kibana.bat 파일이있다. 환경에 맞게 실행하되, 키바나가 실행하기 전에 elasticsearch가 실행되고 있어야한다. 키바나가 정상적으로 실행되었다면 아래 url로 접근해보자. 키바나의 기본 페이지가 뜰 것이다.
http://localhost:5601/app/home
엘라스틱서치가 정상적으로 시작되면 path.repo에서 설정한 물리적인 snapthot 데이터를 엘라스틱서치로 인식시켜야한다. path.repo에 설정한 두 개의 디렉토리 중에서 먼저 search_example 디렉토리의 데이터를 활성화해보자. 아래와 같은 명령어를 실행하면 search_example 데이터가 javacafe라는 이름의 논리적인 snapshot으로 생성된다.
curl -XPUT -H "Content-Type: application/json" 'http://localhost:9200/_snapshot/javacafe' -d '{
"type": "fs",
"settings": {
"location": "/es/book_backup/search_example",
"compress": true
}
}'
curl -XPUT -H "Content-Type: application/json" 'http://localhost:9200/_snapshot/apache-web-log' -d '{
"type": "fs",
"settings": {
"location": "/es/book_backup/agg_example",
"compress": true
}
}'
생성된 논리적인 jabacafe snapshot을 확인해보자
http://localhost:9200/_snapshot/javacafe/_all
이제 다시 키바나로 돌아오자. [그림 1]과 같이 키바나 홈에서 dev tools를 사용해보자. dev tools는 문서와 맵핑의 추가, 삭제 등의 작업을 json 포맷으로 엘라스틱서치에 요청할 수 있다.
처음 진입 시에 나타나는 내용을 살펴보자. 친절하게 오른쪽 사이드 바에 보면 설명이 나와있으니 참고하면 좋을 것같다. 아래 코드를 해석해본다면
첫 번째, GET 요청을 한다. GET 말고도 POST, PUT, DELETE를 지정할 수 있다.
두 번째, _search는 검색 쿼리를 의미한다. _search 앞부분에 인덱스를 명시해서 해당 인덱스로만 범위를 한정해서 검색을 수행할 수도 있다.size가 기본 값 10으로 설정되어 있기 때문에 검색 결과로 10개의 문서만 반환하므로 많은 양의 문서가 색인 되어 있더라도 결과는 빠르게 리턴된다.
세 번째, 쿼리 본문으로부터 검색을 시작한다.
GET _search
{
"query": {
"match_all": {}
}
}
그렇다면 데이터를 한 번 전송해보자. movie_kibana_execute/_doc/1 인덱스를 생성해서 문서를 색인해보자. 아래와 같이 인덱스를 생성한다.
PUT movie_kibana_execute/_doc/1
{
"message":"helloworld"
}
# result
{
"_index": "movie_kibana_execute",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
이번에는 생성된 문서를 검색해보자. 아래와 같이 검색 명령어를 입력하고 실행하면 message가 helloworld인 것을 볼 수 있다.
GET movie_kibana_execute/_search
{
"query": {
"match_all": {}
}
}
# result
{
"took": 0,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1,
"hits": [
{
"_index": "movie_kibana_execute",
"_id": "1",
"_score": 1,
"_source": {
"message": "helloworld"
}
}
]
}
}
'Reading > 엘라스틱서치 실무 가이드' 카테고리의 다른 글
데이터 모델링: 맵핑 api (2) | 2023.12.05 |
---|---|
엘라스틱서치 api (1) | 2023.12.04 |
엘라스틱서치 용어 (1) | 2023.12.01 |
Elasticsearch 환경 구축 (2) | 2023.12.01 |
검색 시스템 이해하기 (1) | 2023.12.01 |