본문 바로가기

Elasticsearch35

Elasticsearch Aggregations#4 Sub Aggregations Aggregations을 수행할 때 사용할 데이터 Sub Aggregations aggregation을 통해 집계를 내고 그 결과에서 세부적인 집계를 위해 Sub Aggregation을 지원하고 있습니다. level 필드별 duration의 평균 시간 구하기 우리는 데이터를 가져오는 것이 목적이 아닌 Aggregations을 수행하는 것이 목적이기 때문에 "size"를 0으로 설정하였습니다. api POST http://localhost:9200/test-log-index-2021-09-12/_search header content-type: application/json body { "size": 0, "query": { "match_all": {} }, "aggs": { "byLevel": { "te.. 2021. 9. 19.
Elasticsearch Aggregations#3 terms, ranges, histogram, date_range Aggregation을 수행할 때 사용할 데이터 terms terms는 데이터의 keyword별 종류 및 개수를 집계하는데 사용합니다. 모든 도큐먼트의 level의 종류와 개수 구하기 우리는 데이터를 가져오는 것이 목적이 아닌 Aggregation을 수행하는 것이 목적이기 때문에 "size"를 0으로 설정하였습니다. level 필드의 데이터 종류와 각 종류별로 도큐먼트가 몇개 있는지 확인합니다. api POST http://localhost:9200/test-log-index-2021-09-12/_search header content-type: application/json body { "size": 0, "query": { "match_all": {} }, "aggs": { "byLevel": { ".. 2021. 9. 17.
Elasticsearch Aggregations#2 cardinality, percentiles, percentile_ranks Aggregation을 수행할 때 사용할 데이터 cardinality cardinality는 데이터의 종류가 몇 가지 있는지 확인하는 데 사용됩니다. user_id가 1인 도큐먼트에 action이 몇가지 종류가 있는지 확인하기 우리는 데이터를 가져오는 것이 목적이 아닌 Aggregations을 수행하는 것이 목적이기 때문에 "size"를 0으로 설정하였습니다. api POST http://localhost:9200/test-log-index-2021-09-12/_search header content-type: application/json body { "size": 0, "query": { "bool": { "must": [ { "match": { "user_id": "1" } } ] } }, "agg.. 2021. 9. 15.
Elasticsearch Aggregations#1 min, max, sum, avg, stats Aggregation을 수행할 때 사용할 데이터 Aggregations이란 저장된 데이터를 수치화시키는 여러 가지의 연산을 수행하는 역할을 합니다. 이러한 기능을 통하여 데이터를 분석하여 사용자가 보기 좋게 시각화를 할 수 있습니다. 이번 페이지에서는 min, max, sum, avg, stats에 대하여 알아보겠습니다. min query의 검색 결과에 특정 필드의 값이 가장 작은 값을 나타냅니다. user_id가 1인 도큐먼트의 duration 필드의 최솟값 구하기 "size"를 0으로 설정한 이유는 우리는 데이터를 가져오는 것이 목적이 아닌 user_id가 1인 도큐먼트에서 duration이 가장 작은 값만 도출하는 것이 목적이기 때문에 불필요하게 데이터를 가져오는 것을 생략하기 위함입니다. "agg.. 2021. 9. 13.
Elasticsearch 검색하기#3 match, term, range 쿼리 삽입된 데이터는 이전 페이지를 참조해주세요 https://stdhsw.tistory.com/entry/Elasticsearch-%EA%B2%80%EC%83%89%ED%95%98%EA%B8%B01 match 쿼리 match는 term과 비슷해 보이지만 미묘한 차이가 있습니다. match의 경우 기본적인 검색을 수행하는데 사용을 하지만 저 같은 경우 text 필드에서 보다 상세한 검색을 수행할 경우 주로 사용됩니다. 즉 문서의 내용에서 특정 단어가 들어 갔는지 검색할때 많이 사용됩니다. text 필드 검색하기 message 필드에 "aaa"라는 문자열이 포함된 모든 도큐먼트를 검색합니다. api POST http://localhost:9200/my-log-index-2021-08-29/_search head.. 2021. 9. 10.
Elasticsearch 검색하기#2 bool must, must_not, should 데이터는 이전 페이지를 참조해주세요 https://stdhsw.tistory.com/entry/Elasticsearch-%EA%B2%80%EC%83%89%ED%95%98%EA%B8%B01 bool 쿼리 Elasticsearch에서 보다 자세한 검색을 위해 복합 쿼리가 필요합니다. 이럴 때 bool을 사용하게 됩니다. bool 쿼리에는 must, must_not, should가 있고 이러한 쿼리를 이용하여 score에 점수를 매길 수 있습니다. score의 점수가 높을수록 보다 정확한 결괏값을 도출할 수 있습니다. must must는 검색 조건에 반듯이 포함한 도큐먼트를 가져옵니다. keyword타입 검색하기 level필드에 값이 "info"값을 가지는 모든 도큐먼트를 검색합니다. 참고로 level필드의 .. 2021. 9. 8.