2015-01-14 14 views
9

में दस्तावेज़ का नेस्टेड मान एक्सेस करें मेरे पास नीचे दिए गए ElasticSearch में संग्रहीत दस्तावेज़ है। _source:लोचदार खोज: groovy स्क्रिप्ट

{ 
"firstname": "John", 
"lastname": "Smith", 
"medals":[ 
      { 
      "bucket": 100, 
      "count": 1 
      }, 
      { 
      "bucket": 150, 
      "count": 2 
      } 
     ] 
    } 

मैं पटकथा मीट्रिक एकत्रीकरण http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-scripted-metric-aggregation.html के लिए doc.firstname का उपयोग कर एक दस्तावेज़ के अंदर स्ट्रिंग प्रकार मूल्य तक पहुँच सकते हैं।

लेकिन मैं का उपयोग कर doc.medals[0].bucket.

क्या आप मुझे बाहर करने में मदद और मुझे कैसे एकत्रित फ़ील्ड के अंदर मूल्यों का उपयोग करने की जानकारी दे सकते हैं फ़ील्ड मान प्राप्त करने में सक्षम नहीं हूँ?

उत्तर

9

नेस्टेड गुणों के लिए _source का उपयोग करें। दस्तावेज़ में फ़ील्ड हैं जो स्मृति में लोड हैं। नेस्टेड दस्तावेज़ लोड नहीं किए जा सकते हैं और उन्हें _source के साथ एक्सेस किया जाना चाहिए।

उदाहरण के लिए:

GET index/type 
    { 
    "aggs": { 
     "NAME": { 
     "scripted_metric": { 
     "init_script": "_agg['collection']=[]", 
     "map_script": "_agg['tr'].add(_source.propertry1.prop);", 
     "combine_script": "return _agg", 
     "reduce_script": "return _aggs" 
     } 
    } 
    }, 
    "size": 0 
} 
संबंधित मुद्दे