Elasticsearch04_(검색 API)
2024. 12. 28. 20:15ㆍELK가_뭐지/Elasticsearch
검색 API
- 검색을 실행하는 2가지 방법
- REST요청 "URI"를 통해 검색 매개변수를 보냄
- REST요청 "본문"을 통해 검색 매개 변수를 보냄
- 요청 본문 메서드를 사용하면 표현력을 높이고 더 쉽게 읽을 수 있는 JSON형식으로 검색을 정의
- 검색용 REST API는 _search 엔드 포인트에서 액세스
- bank인덱스의 모든 문서를 반환 예제
get /bank/_search?q=*&sort=account_number:asc&pretty- 인덱스 :
bank q=*: 인덱스의 모든 문서와 일치하도록 지시sort=account_number:asc: 각 문서의 account_number필드를 사용해 결과를 오름차순으로 정렬pretty: 보기 좋은 Json결과 반환
- 인덱스 :
Query DSL
- 쿼리를 실행하는데 사용할 수 있는 json스타일 도메인 관련 언어를 제공
// 선택적으로 확인하려는 필드 지정
get /bank/_search
{
"query":{"match_all" : {}}
"_source": ["account_number","balance"]
}
// match : Ava || Eva 일치하면 반환
post /bank/_search
{
"query":{"match" : {"address": "Ava Eva"}}
}
// match_phrase : 완전히 일치하면 반환
post /bank/_search
{
"query":{"match_phrase" : {"address": "Ava Eva"}}
}
// age가 40이고 state가 ID가 아닌 값
get /bank/_search
{
"query":{
"bool":{
"must":[
{"match":{"age":40}}
],
"must_not":[
{"math":{"state":"ID"}}
]
}
}
}
검색API 실습
kibana_sample_data_flights 인덱스 사용.(키바나에서 제공하는 샘플데이터)
# search API query
get _cat/indices
get kibana_sample_data_flights/_search?q=*
// url로 요청하는 방법
get kibana_sample_data_flights/_search?q=*&sort=AvgTicketPrice
// body로 요청하는 방법
post kibana_sample_data_flights/_search
{
"query":{"match_all": {}},
"sort":{"AvgTicketPrice":"asc"}
}
// 모든 데이터 조회 & 가격으로 내림차순 & "AvgTicketPrice","FlightNum"필드만 보이게
post kibana_sample_data_flights/_search
{
"query":{"match_all": {}},
"sort":{"AvgTicketPrice":"desc"},
"_source" : ["AvgTicketPrice","FlightNum"]
}
// DestCountry 필드 값에 AU가 포함된 데이터
post kibana_sample_data_flights/_search
{
"query":{"match": {"DestCountry":"AU"}},
"sort":{"AvgTicketPrice":"desc"},
"_source" : ["AvgTicketPrice","FlightNum","DestCountry"]
}
// DestCountry 필드 값이 AU와 일치한 데이터
post kibana_sample_data_flights/_search
{
"query":{"match_phrase": {"DestCountry":"AU"}},
"sort":{"AvgTicketPrice":"desc"},
"_source" : ["AvgTicketPrice","FlightNum","DestCountry"]
}
// DestCountry 필드 값에 AU가 포함되고 FlightNum 필드 값이 "9HY9SWR"가 아닌 데이터
post kibana_sample_data_flights/_search
{
"query":{
"bool" : {
"must": [
{"match": {
"DestCountry": "AU"
}}
],
"must_not": [
{"match": {
"FlightNum": "9HY9SWR"
}}
]
}
}
}'ELK가_뭐지 > Elasticsearch' 카테고리의 다른 글
| Elasticsearch04_2_(퀴즈로 엘라스틱서치 익히기) (3) | 2024.12.31 |
|---|---|
| Elasticsearch04_1_(검색API_URL을 이용한 검색) (2) | 2024.12.30 |
| Elasticsearch03_(Batch 프로세스 실행하기) (2) | 2024.12.28 |
| Elasticsearch02_2_(퀴즈로CRUD익히기) (1) | 2024.12.28 |
| Elasticsearch02_1_(CRUD실습) (6) | 2024.12.28 |