वापस शीर्ष क्षेत्रों के आधार पर नेस्टेड फ़ील्ड में रकम ElasticSearch

0

सवाल

मैं एक कुल ES शुरुआत है और मुझे आश्चर्य है कि अगर मैं चाहता हूँ कि क्या करने के लिए भी संभव है. मैं निम्नलिखित है एक viewer सूचकांक के साथ निम्न मानचित्रण:

"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_viewed प्रत्येक के लिए viewed_video भर में कई viewerएस और फिर शीर्ष X लोगों के लिए एक निश्चित स्थान.

है कि संभव है?

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

सबसे अच्छा जवाब

0

समाधान: आप की आवश्यकता होगी एक तीन स्तर का एकत्रीकरण -

  • शब्द एकत्रीकरण पर स्थान फ़ील्ड
  • नेस्टेड शब्द एकत्रीकरण पर देखी वीडियो की आईडी
  • राशि एकत्रीकरण पर बार देखे गए

हालांकि, शब्द एकत्रित नहीं किया जा सकता पर पाठ फ़ील्ड है । कृपया नोट की जांच में दस्तावेज - https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html:

डिफ़ॉल्ट रूप से, आप नहीं कर सकते चलाने के एक मामले के एकत्रीकरण पर एक पाठ क्षेत्र है. एक खोजशब्द का उपयोग करें उप-क्षेत्र के बजाय. वैकल्पिक रूप से, आप सक्षम कर सकते हैं fielddata पर पाठ क्षेत्र बनाने के लिए बाल्टी के लिए क्षेत्र के विश्लेषण की शर्तें. सक्षम करने fielddata काफी वृद्धि कर सकते हैं स्मृति के उपयोग ।

यह मदद कर सकता है के रूप में अच्छी तरह से: elasticsearch एकत्रीकरण क्षेत्रों के साथ पाठ प्रकार मानचित्रण

एक बार उपरोक्त मुद्दे तय हो गई है, इस प्रश्न को काम करना चाहिए -

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ý
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में