익상 필드를 기반으로 중첩된 분야 합계에서

0

질문

나는 총 ES 초과 궁금하면 내가 무엇을 하고 싶은 심지어 가능합니다. 나는 다음과 같은 a viewer index 다음 맵핑을 사용:

"mappings": {
        "properties": {
            "id": {"type": "text"},
            "name": {"type": "text"},
            "location": {"type": "text"},
            "viewed_videos": { //array of all the videos a viewer saw and their view counts
                "type": "nested",
                "properties": {
                    "id": {"type": "text"},
                    "name": {"type": "text"},
                    "description": {"type": "text"},
                    "times_viewed": {"type": "long"},
                },
            },
        }
    }

내가 원하는 그 밖으로 무엇이 가장 많이 본 동영상 위치에 있습니다. 그래서 나는 방법이 필요를 합계 times_viewedviewed_video 에 걸쳐 많 viewers 과를 얻을 위 X 람을 위해 특정 위치에 있습니다.

하는 것이 가능할까요?

elasticsearch
2021-11-19 18:58:29
1

최고의 응답

0

솔루션: 당신이 필요로 할 것이 세 가지 수준의 집계

  • 기 집계에 위치 분야
  • 중첩된 용어에 대해 집계를 조회 동영상 Id
  • sum 집계 시간에 조회

그러나 단기 집계를 수행할 수 없는 텍스트 필드가 있습니다. 을 확인하시기 바랍 참고 문서- https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html:

기본적으로 실행할 수 없어 집계에서 텍스트를 입력 할 수 있습니다. 키워드를 사용하는 하위 분야다. 또는,사용할 수 있습 fielddata 에 텍스트 필드하는 버킷을 만들에 대한 현장 분석니다. 사용 fielddata 크게 증가할 수 있습니다 메모리를 사용합니다.

도움이 될 수 있습니다뿐만 아니라: 동 방법을 집계된 필드 텍스트 입력 mapping

한 번 위의 문제가 해결되었,이 쿼리를 작동해야-

GET viewer/_search
{
  "size": 0,
  "aggs": {
    "location": {
      "terms": {
        "field": "location"
      },
      "aggs": {
        "videos": {
          "nested": {
            "path": "viewed_videos"
          },
          "aggs": {
             "type": {
               "terms": {
                    "field": "viewed_videos.id"
                },
                "aggs": {
                  "count": {
                    "sum": {
                      "field": "viewed_videos.times_viewed"
                    }
                  },
                  "sorted_count": {
                    "bucket_sort": {
                      "sort": [
                        { "count": { "order": "desc" } } 
                      ],
                      "size": <X> // top X results                            
                    }
                  }
                } 
              }
            }
          }
       }
    }
  }
}
2021-11-20 08:11:05

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................