공식 홈페이지에서 제공하는 API로 테스트를 진행해본다.
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
curl 'localhost:9200/_cat/indices?v'
명령어를 날려본다.
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana_7.13.3_001 GBGe6W1TSk6iXsPGWT4kQA 1 0 12 0 2.1mb 2.1mb
yellow open bank YnmIukjxRm2k0CERwzBxyQ 1 1 1000 0 379.3kb 379.3kb
green open .apm-custom-link 0K_O23HVSjOoBvAD37sxhg 1 0 0 0 208b 208b
green open .kibana-event-log-7.13.3-000001 AKHLKRZcQK63_R7L6Qc3VA 1 0 1 0 5.6kb 5.6kb
green open .apm-agent-configuration hrkWQcb0S8-zjlDhI-j8CA 1 0 0 0 208b 208b
green open .kibana_task_manager_7.13.3_001 gXsCASMpTySwy1PUXR30ww 1 0 9 0 14.8kb 14.8kb
이전에 bulkAPI를 이용해 집어넣었던 bank 인덱스가 있고, 나머지는 디폴트로 생긴 데이터들이다.
postman을 설치했어서 postman으로 한다.
터미널에 postman을 입력한다. 혹시나 설치를 안했다면,
이 포스팅을 보고 설치해두길 바란다!
쿼리 DSL로 body에 담아서 보냈다.
GET방식
http://localhost:9200/bank/_search
body 내용
{
"query": {
"match_all": {
}
}
}
결과를 스크린샷으로 보면 이렇게 된다!
결과로 나온 json을 확인해보면 다음과 같다.
도큐먼트는 1000개가 나왔는데, 1개만 예시로 보여준다.
"took": 900, -> 쿼리 실행시간이 900ms
"timed_out": false, -> 쿼리 실행하다가 시간 초과가 됐나?
"_shards": {
"total": 1, -> 쿼리를 요청한 샤드의 개수 / 이 인덱스는 1개의 샤드로 이뤄져 있음을 알 수 있다.
"successful": 1, -> 검색 요청에 성공한 샤드의 개수
"skipped": 0, -> 스킵한 샤드의 개수
"failed": 0 -> 실패한 샤드의 개수
},
요청으로 리턴된 데이터 중, 여기까지가 메타 필드이다.
--------------------------------------------------
"hits": {
"total": {
"value": 1000, ->매칭된 전체 문서 개수
"relation": "eq" -> 원래 디폴트로 매핑되는 문서의 개수는 최대 10000개이다. 만약에 문서가 20000개이면 10000개만 가져오되, gte라고 나온다.(greater than equal)
},
"max_score": 1.0, -> 일치하는 도큐먼트의 스코어 값 중 가장 높은 값
"hits": [ -> 스코어가 높은 상위 도큐먼트 10개를 보여줌
{
"_index": "bank", -> 뱅크
"_type": "account", -> 계정
"_id": "1", -> 아이디가 1이다.
"_score": 1.0, -> 가장 높은 스코어
"_source": {
"account_number": 1,
"balance": 39225,
"firstname": "Amber",
"lastname": "Duke",
"age": 32,
"gender": "M",
"address": "880 Holmes Lane",
"employer": "Pyrami",
"email": "amberduke@pyrami.com",
"city": "Brogan",
"state": "IL"
}
}
]
이제 집중적으로 DSL을 확인해보자.
다음 포스팅에서 확인한다!!