Elasticsearch의 Nested Aggregation
6139 단어 elasticsearch
In the same way as we need to use the special nested query to gain access to nested objects at search time, the dedicated nested aggregation allows
us to aggregate fields in nested objects:
검색할 때 특정한 nested 검색을 사용해서 nested object와 접촉해야 하는 것과 마찬가지로, 특정한 nested 집합 역시 nested object 내의 필드를 집합할 수 있습니다.
curl -XGET 'localhost:9200/my_index/blogpost/_search?search_type=count' -d '
{
"aggs":{
"comments":{①
"nested":{
"path":"comments"
},
"aggs":{
"by_month":{
"date_histogram":{②
"field":"comments.date",
"interval":"month",
"format":"yyyy-MM"
},
"aggs":{
"avg_stars":{
"avg":{③
"field":"comments.stars"
}
}
}
}
}
}
}
}
①:The nested aggregation “steps down” into the nested comments object.
nested 집합이 nested 평론 대상에 들어갑니다.
②:Comments are bucketed into months based on the comments.date field.
평론은 주석에 기초한다.date 필드 집합 월
③:The average number of stars is calculated for each bucket.
각 묶음에 대해 성급의 평균치를 계산하다.
The results show that aggregation has happened at the nested document level:
그 결과 집합은 확실히 nested 텍스트 층에서 발생했다.
...
"aggregations": {
"comments": {
"doc_count": 4,
"by_month": {
"buckets": [
{
"key_as_string": "2014-09",
"key": 1409529600000,
"doc_count": 1,
"avg_stars": {
"value": 4
}
},
{
"key_as_string": "2014-10",
"key": 1412121600000,
"doc_count": 3,
"avg_stars": {
"value": 2.6666666666666665
}
}
]
}
}
}
reverse_nested Aggregation
반중첩 집합
A nested aggregation can access only the fields within the nested document. It can’t see fields in the root document or in a different
nested document. However, we can step out of the nested scope back into the parent with a reverse_nested aggregation.
nested 집합은 nested 텍스트 내의 필드만 연결할 수 있으며, 루트 텍스트나 다른 nested 텍스트 내의 필드를 볼 수 없습니다.그러나, 우리는 반접합 집합을 통해nested 국역에서 벗어나 부층으로 들어갈 수 있다.
For instance, we can find out which tags our commenters are interested in, based on the age of the commenter. The comment.age is
a nested field, while the tags are in the root document:
예를 들어 우리는 평론가의 나이에 근거하여 어떤 라벨이 평론가가 흥미를 느끼는지 찾아낸다.comment.age는 nested 필드이고 tags는 루트 텍스트에 있습니다.
curl -XGET 'localhost:9200/my_index/blogpost/_search?search_type=count' -d '
{
"aggs":{
"comments":{
"nested":{①
"path":"comments"
},
"aggs":{
"age_group":{
"histogram":{②
"field":"comments.age",
"interval":10
},
"aggs":{
"blogposts":{
"reverse_nested":{},③
"aggs":{
"tags":{
"terms":{④
"field":"tags"
}
}
}
}
}
}
}
}
}
}
②:The histogram agg groups on the comments.age field, in buckets of 10 years.
histogram(직사각형)은comments에 집합됩니다.age 필드에서 10년마다 그룹을 나눈다.
③:The reverse_nested agg steps back up to the root document.
reverse_nested 집합은 루트 텍스트로 돌아갑니다.
④:The terms agg counts popular terms per age group of the commenter.
terms 집합 계산 각 연령대의 유행 terms.
The abbreviated results show us the following:
다음은 단순화 결과입니다.
..
"aggregations": {
"comments": {
"doc_count": 4,
"age_group": {
"buckets": [
{
"key": 20,
"doc_count": 2,
"blogposts": {
"doc_count": 2,
"tags": {
"doc_count_error_upper_bound": 0,
"buckets": [
{ "key": "shares", "doc_count": 2 },
{ "key": "cash", "doc_count": 1 },
{ "key": "equities", "doc_count": 1 }
]
}
}
},
...
When to Use Nested Objects
nested 대상을 언제 사용합니까?
Nested objects are useful when there is one main entity, like our blogpost, with a limited number of closely related but less important entities,
such as comments. It is useful to be able to find blog posts based on the content of the comments, and the nested query and filter provide for
fast query-time joins.
주요 실체, 예를 들어blogpost(블로그 글), 그리고 유한한 관련이 있지만 이렇게 중요한 다른 실체가 없다.comments(평론),nested 대상은 매우 유용하다.평론의 내용을 바탕으로 블로그 글을 찾는 것은 가치가 있다.또한 빠른 조회 시간 연결을 위해nested 조회와 필터를 제공합니다.
The disadvantages of the nested model are as follows:
nested 모드의 단점은 다음과 같습니다.
1.To add, change, or delete a nested document, the whole document must be reindexed. This becomes more costly the more nested
documents there are.
1. nested 텍스트를 추가하거나 변경하거나 삭제하기 위해 전체 텍스트는 색인을 다시 만들어야 합니다.nested 텍스트가 많을수록 대가가 커집니다.
2.Search requests return the whole document, not just the matching nested documents. Although there are plans afoot to support returning
the best -matching nested documents with the root document, this is not yet supported.
2. 검색 요청은 일치하는 nested 텍스트뿐만 아니라 전체 텍스트로 되돌아옵니다.루트 텍스트를 되돌리는 동시에 가장 일치하는nested 텍스트를 되돌릴 수 있도록 실행 중이지만, 아직 실현되지 않았습니다.
원문:http://www.elastic.co/guide/en/elasticsearch/guide/master/nested-aggregation.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
kafka connect e elasticsearch를 관찰할 수 있습니다.No menu lateral do dashboard tem a opção de connectors onde ele mostra todos os clusters do kafka connect conectados atu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.