ElasticSearch 학습노트 24통 모으기
ElasticSearch 학습노트 24통 모으기
Date Range Aggregation(시간 범위 집합)
Date Range Aggregation은 시간 유형 데이터에 특화된 범위 집합입니다.그것과rangeaggregation은 주로 from
과 to
의 값을 날짜 표현식으로 사용할 수도 있고, 귀환체의 from
과 to
의 형식을 지정할 수도 있다.집합의 각 범위에는 from
이 포함되지만 to
은 제외됩니다. 예를 들어POST /sales/_search?size=0
{
"aggs": {
"range": {
"date_range": {
"field": "date",
"format": "MM-yyy",
"ranges": [
{ "to": "now-10M/M" },
{ "from": "now-10M/M" }
]
}
}
}
}
설명: 이제 10개월을 빼고 월의 시작 시간으로 넘어갑니다.
위의 예에서 우리는 두 개의 범위 그룹을 만들었다. 첫 번째는 10개월 전의 모든 문서를 포함하고, 두 번째는 10개월 전의 모든 문서를 포함한다.
응답은 다음과 같습니다.{
...
"aggregations": {
"range": {
"buckets": [
{
"to": 1.4436576E12,
"to_as_string": "10-2015",
"doc_count": 7,
"key": "*-10-2015"
},
{
"from": 1.4436576E12,
"from_as_string": "10-2015",
"doc_count": 0,
"key": "10-2015-*"
}
]
}
}
}
Missing Values
missing 매개 변수는 값이 없는 문서를 어떻게 처리해야 하는지를 정의하는 데 사용됩니다.기본적으로, 그것들은 무시될 수도 있고, 당연히 값이 있는 것으로 처리할 수도 있다. 우리는 맵에서 필드의 부족한 값을 먼저 표시해야 한다.POST /sales/_search?size=0
{
"aggs": {
"range": {
"date_range": {
"field": "date",
"missing": "1976/11/30",
"ranges": [
{
"key": "Older",
"to": "2016/02/01"
},
{
"key": "Newer",
"from": "2016/02/01",
"to" : "now/d"
}
]
}
}
}
}
문서의 date
필드 값이 비어 있으면 "1899-12-31"
기본값이 있고 "Older"
그룹으로 구분됩니다.
Date Format/Pattern
정보는 JodaDate에서 제공됩니다.
모든 ASCII 문자는 다음과 같이 정의된 형식 표현식 문자로 유지됩니다.
Symbol
Meaning
Presentation
Examples
G
era
text
AD
C
century of era (>=0)
number
이십
Y
year of era (>=0)
year
1996
x
weekyear
year
1996
w
week of weekyear
number
27
e
day of week
number
이
E
day of week
text
Tuesday; Tue
y
year
year
1996
D
day of year
number
189
M
month of year
month
July; Jul; 07
d
day of month
number
십
a
halfday of day
text
PM
K
hour of halfday (0~11)
number
0
h
clockhour of halfday (1~12)
number
십이
H
hour of day (0~23)
number
0
k
clockhour of day (1~24)
number
24
m
minute of hour
number
삼십
s
second of minute
number
55
S
fraction of second
number
978
z
time zone
text
Pacific Standard Time; PST
Z
time zone offset/id
zone
-0800; -08:00; America/Los_Angeles
’
escape for text
delimiter
‘’
표현식 자모의 수량이 형식을 결정한다.
XX
설명
Text
표현식 자모의 수가 4 이상이면 완전한 형식을 사용한다.그렇지 않으면 사용할 수 있으면 짧거나 줄임말을 사용할 수 있습니다.
Number
숫자의 최소 표시.
Year
연도와 돌 필드의 숫자는 전문적으로 처리된다는 것을 나타낸다.예를 들어, Y의 수가 2인 경우 년은 두 자릿수인 금세기의 제로 베이스 년으로 표시됩니다.
Month
3개 이상은text를 사용하고 그렇지 않으면number를 사용합니다.
Zone
Z 출력은 콜론 오프셋이 없습니다. ZZ는 콜론, ZZZ 또는 더 많은 출력으로 zone id를 출력합니다.
Zone names
시간대 이름을 확인할 수 없습니다(Z).
표현식의 모든 문자는 [A.Z] 및 [A.Z]의 범위에 있지 않으며 참조 텍스트로 간주됩니다.예를 들어,,,,,#and ? 따옴표에 포함되지 않더라도 생성된 시간 텍스트에 나타납니다.
Time zone in date range aggregations
time_zone
매개 변수는 날짜의 시간대를 UTC로 변환할 수 있습니다
시간대는 ISO 8601 UTC
오프셋 (예: +01:00 또는 -08:00) 으로 지정하거나 TZ 데이터베이스에서http://www.joda.or g/joda-time/time zones.html[Zone id] 중 하나입니다.time_zone
매개 변수는 날짜 표현식에도 적용될 수 있다.예를 들어 CET 시간대에서 하루의 순환을 시작하면 다음과 같은 일을 할 수 있다.POST /sales/_search?size=0
{
"aggs": {
"range": {
"date_range": {
"field": "date",
"time_zone": "CET",
"ranges": [
{ "to": "2016/02/01" },
{ "from": "2016/02/01", "to" : "now/d" },
{ "from": "now/d" }
]
}
}
}
}
날짜는 2016-02-15T00:00:00:00+01:00으로 변경됩니다.now/d
은 CET 시간대 하루의 시작으로 반올림되었다.
Keyed Response
keyed
을 true
으로 설정하면 각 그룹과 유일무이한 키를 연결시켜서array가 아닌hash로 되돌려줍니다.POST /sales/_search?size=0
{
"aggs": {
"range": {
"date_range": {
"field": "date",
"format": "MM-yyy",
"ranges": [
{ "to": "now-10M/M" },
{ "from": "now-10M/M" }
],
"keyed": true
}
}
}
}
응답은 다음과 같습니다.{
...
"aggregations": {
"range": {
"buckets": {
"*-10-2015": {
"to": 1.4436576E12,
"to_as_string": "10-2015",
"doc_count": 7
},
"10-2015-*": {
"from": 1.4436576E12,
"from_as_string": "10-2015",
"doc_count": 0
}
}
}
}
}
각 범위에 대한 사용자 정의 키도 지원됩니다.POST /sales/_search?size=0
{
"aggs": {
"range": {
"date_range": {
"field": "date",
"format": "MM-yyy",
"ranges": [
{ "from": "01-2015", "to": "03-2015", "key": "quarter_01" },
{ "from": "03-2015", "to": "06-2015", "key": "quarter_02" }
],
"keyed": true
}
}
}
}
응답은 다음과 같습니다.{
...
"aggregations": {
"range": {
"buckets": {
"quarter_01": {
"from": 1.4200704E12,
"from_as_string": "01-2015",
"to": 1.425168E12,
"to_as_string": "03-2015",
"doc_count": 5
},
"quarter_02": {
"from": 1.425168E12,
"from_as_string": "03-2015",
"to": 1.4331168E12,
"to_as_string": "06-2015",
"doc_count": 2
}
}
}
}
}
Filter Aggregation(필터링 집합)
Filter Aggregation은 현재 인덱스에서 일치하는 모든 문서를 필터링하는 단일 그룹 집합입니다.일반적으로 현재 집합에서 구체적인 문서 집합을 얻는 데 사용된다.
예:POST /sales/_search?size=0
{
"aggs" : {
"t_shirts" : {
"filter" : { "term": { "type": "t-shirt" } },
"aggs" : {
"avg_price" : { "avg" : { "field" : "price" } }
}
}
}
}
위의 예에서 우리는 t-shirt 제품의 평균 가격을 계산했다.응답은 다음과 같습니다.{
...
"aggregations" : {
"t_shirts" : {
"doc_count" : 3,
"avg_price" : { "value" : 128.33333333333334 }
}
}
}
Filters Aggregation(다중 필터링 집합)
Filters Aggregation은 여러 그룹의 집합으로 그룹마다 필터 조건을 연결하고 자신의 필터 조건을 충족시키는 모든 문서를 수집합니다.
예:PUT /logs/_doc/_bulk?refresh
{ "index" : { "_id" : 1 } }
{ "body" : "warning: page could not be rendered" }
{ "index" : { "_id" : 2 } }
{ "body" : "authentication error" }
{ "index" : { "_id" : 3 } }
{ "body" : "warning: connection timed out" }
GET logs/_search
{
"size": 0,
"aggs" : {
"messages" : {
"filters" : {
"filters" : {
"errors" : { "match" : { "body" : "error" }},
"warnings" : { "match" : { "body" : "warning" }}
}
}
}
}
}
위의 사례에서 우리는 로그 정보를 분석한다. 집합은 로그 데이터에 대한 그룹 2개를 만들 것이다. 하나는 오류 정보를 포함하고 하나는 경고 정보를 포함한다.응답은 다음과 같습니다.{
"took": 9,
"timed_out": false,
"_shards": ...,
"hits": ...,
"aggregations": {
"messages": {
"buckets": {
"errors": {
"doc_count": 1
},
"warnings": {
"doc_count": 2
}
}
}
}
}
Anonymous filters(익명 필터링)
filters
필드는 다음과 같은 필터링 그룹으로 사용할 수 있습니다.GET logs/_search
{
"size": 0,
"aggs" : {
"messages" : {
"filters" : {
"filters" : [
{ "match" : { "body" : "error" }},
{ "match" : { "body" : "warning" }}
]
}
}
}
}
필터 그룹이 되돌아오는 그룹과 요청이 일치합니다.응답은 다음과 같습니다.{
"took": 4,
"timed_out": false,
"_shards": ...,
"hits": ...,
"aggregations": {
"messages": {
"buckets": [
{
"doc_count": 1
},
{
"doc_count": 2
}
]
}
}
}
Other Bucket(기타 그룹)
other_bucket 속성은 응답에 그룹을 추가하고 일치하지 않는 모든 문서를 수집할 수 있습니다.
값을 받다
설명
false
다른 조별 조종을 하지 않다
true
다른 그룹을 되돌려줍니다. 만약 이름 필터 집합이 있다면, 기본적으로 이 그룹은 _other_
으로 명명되고, 익명 집합이라면 다음 그룹으로 되돌아옵니다.
other_bucket_키 매개 변수는 기본 _other_
이 아닌 다른 그룹의 이름을 지정할 수 있습니다.이 속성을 설정하려면 _bucket
매개 변수를 true
으로 설정해야 합니다.
다음은 other_messages
이라는 다른 그룹의 사례입니다.PUT logs/_doc/4?refresh
{
"body": "info: user Bob logged out"
}
GET logs/_search
{
"size": 0,
"aggs" : {
"messages" : {
"filters" : {
"other_bucket_key": "other_messages",
"filters" : {
"errors" : { "match" : { "body" : "error" }},
"warnings" : { "match" : { "body" : "warning" }}
}
}
}
}
}
응답은 다음과 같습니다.{
"took": 3,
"timed_out": false,
"_shards": ...,
"hits": ...,
"aggregations": {
"messages": {
"buckets": {
"errors": {
"doc_count": 1
},
"warnings": {
"doc_count": 2
},
"other_messages": {
"doc_count": 1
}
}
}
}
}
Global Aggregation(총 집합)
Global Aggregation은 검색 조건을 무시하고 모든 문서를 포함하는 단일 그룹 집합입니다.집합된 상하문은 검색된 색인 제한만 받고 검색 조건에 제한을 받지 않습니다.
주의: Global aggregators는 최고급 집합으로만 사용할 수 있으며, Global Aggregation을 다른 그룹에 잠입시키는 것은 무의미하다.
예:POST /sales/_search?size=0
{
"query" : {
"match" : { "type" : "t-shirt" }
},
"aggs" : {
"all_products" : {
"global" : {}, #global aggregation
"aggs" : { # global aggregation
"avg_price" : { "avg" : { "field" : "price" } }
}
},
"t_shirts": { "avg" : { "field" : "price" } }
}
}
위의 사례는 조회 조건을 무시하고 모든 문서에 대해 집합 작업을 수행하는 방법을 보여 준다(예를 들어 avg_price
). 우리의 사례에서 우리는 t_shirts
이 아니라 모든 제품의 평균 가격을 계산한다
결과는 다음과 같다.{
...
"aggregations" : {
"all_products" : {
"doc_count" : 7,
"avg_price" : {
"value" : 140.71428571428572
}
},
"t_shirts": {
"value" : 128.33333333333334
}
}
}
Missing Aggregation(비어 있는 값 집합)
Missing Aggregation은 문서가 모든 확실한 필드 값이나 필드 값을 null
으로 설정한 문서에 대해 그룹을 만드는 단일 그룹 집합입니다.이 집합은 일반적으로 다른 필드 데이터 그룹 집합과 함께 사용됩니다. 예를 들어 범위 집합은 필드 값이 부족하여 그룹에 넣을 수 없는 문서 집합을 되돌려줍니다.
예:POST /sales/_search?size=0
{
"aggs" : {
"products_without_a_price" : {
"missing" : { "field" : "price" }
}
}
}
위의 사례에서 우리는 가격이 없는 모든 제품의 응답을 다음과 같이 얻을 수 있다.{
...
"aggregations" : {
"products_without_a_price" : {
"doc_count" : 00
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
POST /sales/_search?size=0
{
"aggs": {
"range": {
"date_range": {
"field": "date",
"format": "MM-yyy",
"ranges": [
{ "to": "now-10M/M" },
{ "from": "now-10M/M" }
]
}
}
}
}
{
...
"aggregations": {
"range": {
"buckets": [
{
"to": 1.4436576E12,
"to_as_string": "10-2015",
"doc_count": 7,
"key": "*-10-2015"
},
{
"from": 1.4436576E12,
"from_as_string": "10-2015",
"doc_count": 0,
"key": "10-2015-*"
}
]
}
}
}
POST /sales/_search?size=0
{
"aggs": {
"range": {
"date_range": {
"field": "date",
"missing": "1976/11/30",
"ranges": [
{
"key": "Older",
"to": "2016/02/01"
},
{
"key": "Newer",
"from": "2016/02/01",
"to" : "now/d"
}
]
}
}
}
}
POST /sales/_search?size=0
{
"aggs": {
"range": {
"date_range": {
"field": "date",
"time_zone": "CET",
"ranges": [
{ "to": "2016/02/01" },
{ "from": "2016/02/01", "to" : "now/d" },
{ "from": "now/d" }
]
}
}
}
}
POST /sales/_search?size=0
{
"aggs": {
"range": {
"date_range": {
"field": "date",
"format": "MM-yyy",
"ranges": [
{ "to": "now-10M/M" },
{ "from": "now-10M/M" }
],
"keyed": true
}
}
}
}
{
...
"aggregations": {
"range": {
"buckets": {
"*-10-2015": {
"to": 1.4436576E12,
"to_as_string": "10-2015",
"doc_count": 7
},
"10-2015-*": {
"from": 1.4436576E12,
"from_as_string": "10-2015",
"doc_count": 0
}
}
}
}
}
POST /sales/_search?size=0
{
"aggs": {
"range": {
"date_range": {
"field": "date",
"format": "MM-yyy",
"ranges": [
{ "from": "01-2015", "to": "03-2015", "key": "quarter_01" },
{ "from": "03-2015", "to": "06-2015", "key": "quarter_02" }
],
"keyed": true
}
}
}
}
{
...
"aggregations": {
"range": {
"buckets": {
"quarter_01": {
"from": 1.4200704E12,
"from_as_string": "01-2015",
"to": 1.425168E12,
"to_as_string": "03-2015",
"doc_count": 5
},
"quarter_02": {
"from": 1.425168E12,
"from_as_string": "03-2015",
"to": 1.4331168E12,
"to_as_string": "06-2015",
"doc_count": 2
}
}
}
}
}
Filter Aggregation은 현재 인덱스에서 일치하는 모든 문서를 필터링하는 단일 그룹 집합입니다.일반적으로 현재 집합에서 구체적인 문서 집합을 얻는 데 사용된다.
예:
POST /sales/_search?size=0
{
"aggs" : {
"t_shirts" : {
"filter" : { "term": { "type": "t-shirt" } },
"aggs" : {
"avg_price" : { "avg" : { "field" : "price" } }
}
}
}
}
위의 예에서 우리는 t-shirt 제품의 평균 가격을 계산했다.응답은 다음과 같습니다.
{
...
"aggregations" : {
"t_shirts" : {
"doc_count" : 3,
"avg_price" : { "value" : 128.33333333333334 }
}
}
}
Filters Aggregation(다중 필터링 집합)
Filters Aggregation은 여러 그룹의 집합으로 그룹마다 필터 조건을 연결하고 자신의 필터 조건을 충족시키는 모든 문서를 수집합니다.
예:PUT /logs/_doc/_bulk?refresh
{ "index" : { "_id" : 1 } }
{ "body" : "warning: page could not be rendered" }
{ "index" : { "_id" : 2 } }
{ "body" : "authentication error" }
{ "index" : { "_id" : 3 } }
{ "body" : "warning: connection timed out" }
GET logs/_search
{
"size": 0,
"aggs" : {
"messages" : {
"filters" : {
"filters" : {
"errors" : { "match" : { "body" : "error" }},
"warnings" : { "match" : { "body" : "warning" }}
}
}
}
}
}
위의 사례에서 우리는 로그 정보를 분석한다. 집합은 로그 데이터에 대한 그룹 2개를 만들 것이다. 하나는 오류 정보를 포함하고 하나는 경고 정보를 포함한다.응답은 다음과 같습니다.{
"took": 9,
"timed_out": false,
"_shards": ...,
"hits": ...,
"aggregations": {
"messages": {
"buckets": {
"errors": {
"doc_count": 1
},
"warnings": {
"doc_count": 2
}
}
}
}
}
Anonymous filters(익명 필터링)
filters
필드는 다음과 같은 필터링 그룹으로 사용할 수 있습니다.GET logs/_search
{
"size": 0,
"aggs" : {
"messages" : {
"filters" : {
"filters" : [
{ "match" : { "body" : "error" }},
{ "match" : { "body" : "warning" }}
]
}
}
}
}
필터 그룹이 되돌아오는 그룹과 요청이 일치합니다.응답은 다음과 같습니다.{
"took": 4,
"timed_out": false,
"_shards": ...,
"hits": ...,
"aggregations": {
"messages": {
"buckets": [
{
"doc_count": 1
},
{
"doc_count": 2
}
]
}
}
}
Other Bucket(기타 그룹)
other_bucket 속성은 응답에 그룹을 추가하고 일치하지 않는 모든 문서를 수집할 수 있습니다.
값을 받다
설명
false
다른 조별 조종을 하지 않다
true
다른 그룹을 되돌려줍니다. 만약 이름 필터 집합이 있다면, 기본적으로 이 그룹은 _other_
으로 명명되고, 익명 집합이라면 다음 그룹으로 되돌아옵니다.
other_bucket_키 매개 변수는 기본 _other_
이 아닌 다른 그룹의 이름을 지정할 수 있습니다.이 속성을 설정하려면 _bucket
매개 변수를 true
으로 설정해야 합니다.
다음은 other_messages
이라는 다른 그룹의 사례입니다.PUT logs/_doc/4?refresh
{
"body": "info: user Bob logged out"
}
GET logs/_search
{
"size": 0,
"aggs" : {
"messages" : {
"filters" : {
"other_bucket_key": "other_messages",
"filters" : {
"errors" : { "match" : { "body" : "error" }},
"warnings" : { "match" : { "body" : "warning" }}
}
}
}
}
}
응답은 다음과 같습니다.{
"took": 3,
"timed_out": false,
"_shards": ...,
"hits": ...,
"aggregations": {
"messages": {
"buckets": {
"errors": {
"doc_count": 1
},
"warnings": {
"doc_count": 2
},
"other_messages": {
"doc_count": 1
}
}
}
}
}
Global Aggregation(총 집합)
Global Aggregation은 검색 조건을 무시하고 모든 문서를 포함하는 단일 그룹 집합입니다.집합된 상하문은 검색된 색인 제한만 받고 검색 조건에 제한을 받지 않습니다.
주의: Global aggregators는 최고급 집합으로만 사용할 수 있으며, Global Aggregation을 다른 그룹에 잠입시키는 것은 무의미하다.
예:POST /sales/_search?size=0
{
"query" : {
"match" : { "type" : "t-shirt" }
},
"aggs" : {
"all_products" : {
"global" : {}, #global aggregation
"aggs" : { # global aggregation
"avg_price" : { "avg" : { "field" : "price" } }
}
},
"t_shirts": { "avg" : { "field" : "price" } }
}
}
위의 사례는 조회 조건을 무시하고 모든 문서에 대해 집합 작업을 수행하는 방법을 보여 준다(예를 들어 avg_price
). 우리의 사례에서 우리는 t_shirts
이 아니라 모든 제품의 평균 가격을 계산한다
결과는 다음과 같다.{
...
"aggregations" : {
"all_products" : {
"doc_count" : 7,
"avg_price" : {
"value" : 140.71428571428572
}
},
"t_shirts": {
"value" : 128.33333333333334
}
}
}
Missing Aggregation(비어 있는 값 집합)
Missing Aggregation은 문서가 모든 확실한 필드 값이나 필드 값을 null
으로 설정한 문서에 대해 그룹을 만드는 단일 그룹 집합입니다.이 집합은 일반적으로 다른 필드 데이터 그룹 집합과 함께 사용됩니다. 예를 들어 범위 집합은 필드 값이 부족하여 그룹에 넣을 수 없는 문서 집합을 되돌려줍니다.
예:POST /sales/_search?size=0
{
"aggs" : {
"products_without_a_price" : {
"missing" : { "field" : "price" }
}
}
}
위의 사례에서 우리는 가격이 없는 모든 제품의 응답을 다음과 같이 얻을 수 있다.{
...
"aggregations" : {
"products_without_a_price" : {
"doc_count" : 00
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
PUT /logs/_doc/_bulk?refresh
{ "index" : { "_id" : 1 } }
{ "body" : "warning: page could not be rendered" }
{ "index" : { "_id" : 2 } }
{ "body" : "authentication error" }
{ "index" : { "_id" : 3 } }
{ "body" : "warning: connection timed out" }
GET logs/_search
{
"size": 0,
"aggs" : {
"messages" : {
"filters" : {
"filters" : {
"errors" : { "match" : { "body" : "error" }},
"warnings" : { "match" : { "body" : "warning" }}
}
}
}
}
}
{
"took": 9,
"timed_out": false,
"_shards": ...,
"hits": ...,
"aggregations": {
"messages": {
"buckets": {
"errors": {
"doc_count": 1
},
"warnings": {
"doc_count": 2
}
}
}
}
}
GET logs/_search
{
"size": 0,
"aggs" : {
"messages" : {
"filters" : {
"filters" : [
{ "match" : { "body" : "error" }},
{ "match" : { "body" : "warning" }}
]
}
}
}
}
{
"took": 4,
"timed_out": false,
"_shards": ...,
"hits": ...,
"aggregations": {
"messages": {
"buckets": [
{
"doc_count": 1
},
{
"doc_count": 2
}
]
}
}
}
PUT logs/_doc/4?refresh
{
"body": "info: user Bob logged out"
}
GET logs/_search
{
"size": 0,
"aggs" : {
"messages" : {
"filters" : {
"other_bucket_key": "other_messages",
"filters" : {
"errors" : { "match" : { "body" : "error" }},
"warnings" : { "match" : { "body" : "warning" }}
}
}
}
}
}
{
"took": 3,
"timed_out": false,
"_shards": ...,
"hits": ...,
"aggregations": {
"messages": {
"buckets": {
"errors": {
"doc_count": 1
},
"warnings": {
"doc_count": 2
},
"other_messages": {
"doc_count": 1
}
}
}
}
}
Global Aggregation은 검색 조건을 무시하고 모든 문서를 포함하는 단일 그룹 집합입니다.집합된 상하문은 검색된 색인 제한만 받고 검색 조건에 제한을 받지 않습니다.
주의: Global aggregators는 최고급 집합으로만 사용할 수 있으며, Global Aggregation을 다른 그룹에 잠입시키는 것은 무의미하다.
예:
POST /sales/_search?size=0
{
"query" : {
"match" : { "type" : "t-shirt" }
},
"aggs" : {
"all_products" : {
"global" : {}, #global aggregation
"aggs" : { # global aggregation
"avg_price" : { "avg" : { "field" : "price" } }
}
},
"t_shirts": { "avg" : { "field" : "price" } }
}
}
위의 사례는 조회 조건을 무시하고 모든 문서에 대해 집합 작업을 수행하는 방법을 보여 준다(예를 들어
avg_price
). 우리의 사례에서 우리는 t_shirts
이 아니라 모든 제품의 평균 가격을 계산한다결과는 다음과 같다.
{
...
"aggregations" : {
"all_products" : {
"doc_count" : 7,
"avg_price" : {
"value" : 140.71428571428572
}
},
"t_shirts": {
"value" : 128.33333333333334
}
}
}
Missing Aggregation(비어 있는 값 집합)
Missing Aggregation은 문서가 모든 확실한 필드 값이나 필드 값을 null
으로 설정한 문서에 대해 그룹을 만드는 단일 그룹 집합입니다.이 집합은 일반적으로 다른 필드 데이터 그룹 집합과 함께 사용됩니다. 예를 들어 범위 집합은 필드 값이 부족하여 그룹에 넣을 수 없는 문서 집합을 되돌려줍니다.
예:POST /sales/_search?size=0
{
"aggs" : {
"products_without_a_price" : {
"missing" : { "field" : "price" }
}
}
}
위의 사례에서 우리는 가격이 없는 모든 제품의 응답을 다음과 같이 얻을 수 있다.{
...
"aggregations" : {
"products_without_a_price" : {
"doc_count" : 00
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
POST /sales/_search?size=0
{
"aggs" : {
"products_without_a_price" : {
"missing" : { "field" : "price" }
}
}
}
{
...
"aggregations" : {
"products_without_a_price" : {
"doc_count" : 00
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.