- Pretty Results
- 요청할 때 ?pretty=true 를 붙여주면 JSON 결과를 보기 좋게 변경해준다.
- Human readable output
- query string에 ?human=false 를 붙여주면 사람이 사용하는 용도가 아닌 모니터링 도구에 의해 사용될 때 의미 있는 통계 결과가 나온다.
- Date Math
- gt & lt -> range query에서 사용
- from & to -> aggregations 에서 사용
- +1h , -1d , /d
- ex) now-1h
- y = years, M = months, w = weeks, d = days, h = hours, H = hours, m = minutes, s = seconds
- Response Filtering
- Elasticsearch가 반환하는 응답 개수?내용?을 줄이기 위해 filter_path를 사용하는데 딱 필요한 데이터만 받고 싶을때 사용 가능함
- 사용 예) took, hits._id 만 필요로 하는 경우
- GET /_search?q=elasticsearch&filter_path=took,hits.hits._id,hits.hits._score
- Response
- { "took" : 3, "hits" : { "hits" : [ { "_id" : "0", "_score" : 1.6375021 } ] } }
- wildcard (* , **) 사용 가능
- - 사용가능
- GET /_count?filter_path=-_shards
- Flat Setting
- ?flat_settings=true 해주면 결과가 flat하게 나온다 (기계가 더 이해하기 쉬운 버젼으로)
- 근데 flat_settings=false (기본) 이랑 비교해봤을 때 나름의 매력이 또 있는 것 같음 ㅋㅋ
- Enabling stack traces
- 에러가 났을 때 ?size=surprise_me를 query string에 붙여 주면 아래와 같은 stacktrace를 확인할 수 있다.
- Request
- POST /twitter/_search?size=surprise_me&error_trace=true
- Response
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "Failed to parse int parameter [size] with value [surprise_me]",
"stack_trace": "Failed to parse int parameter [size] with value [surprise_me]]; nested: IllegalArgumentException..."
}
],
"type": "illegal_argument_exception",
"reason": "Failed to parse int parameter [size] with value [surprise_me]",
"stack_trace": "java.lang.IllegalArgumentException: Failed to parse int parameter [size] with value [surprise_me]\n at org.elasticsearch.rest.RestRequest.paramAsInt(RestRequest.java:175)...",
"caused_by": {
"type": "number_format_exception",
"reason": "For input string: \"surprise_me\"",
"stack_trace": "java.lang.NumberFormatException: For input string: \"surprise_me\"\n at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)..."
}
},
"status": 400
}
- Request body in query string
- POST request가 아닌데 request body가 있고, 이를 허용하지 않는 라이브러리의 경우에는 request body를 source query string으로 파라미터를 보내면 된다.
- 이때 반드시 source_content_type을 명시해 주기 (예를 들면 application/json)
- Content-Type Requirements
- request body 보낼 때 content-type header 명시해주기
엘라스틱 공식문서를 참고하여 짧은 영어 실력으로 번역하고 이해한 내용을 정리하였습니다.
초보 개발자이니 틀린 부분이 있다면 언제든지 얘기해주세요 ^^
(참고 : https://www.elastic.co/guide/en/elasticsearch/reference/6.5)
'AWS' 카테고리의 다른 글
Java + AWS Lambda 사용 예시 메모 (0) | 2021.05.11 |
---|---|
[Elasitcsearch] 문자열 Data Type (0) | 2019.09.30 |
[Elasticsearch 6.5] Basic Concetps 엘라스틱서치 기본 개념 (0) | 2019.09.25 |
[Elasticsearch 6.5] API Convention - Date math support in index names (0) | 2019.09.25 |
[Elasticsearch 6.5] API Convention - Multiple Indices (0) | 2019.09.25 |