2014-07-25 9 views
5

मैं elasticsearch के लिए काफी नया हूं और मुझे अभी तक इस बारे में कोई प्रश्न नहीं मिला है। यदि इसका पहले ही उत्तर दिया गया है, तो मैं उन्नत में माफ़ी मांगता हूं और मुझे उम्मीद है कि आप मुझे सही दिशा में इंगित कर सकते हैं।ElasticSearch (Nest) में एकत्रीकरण

मैं घोंसला में निम्नलिखित को लागू करने के लिए एक रास्ता तलाश कर रहे थे:

.Aggregations(q => q.Terms("fieldA", r => r.Field(s => s.fieldA)) && q.Terms("fieldB", r => r.Field(s => s.fieldB))) 

और इस:

.Aggregations(q => q.Terms("fieldA", r => r.Field(s => s.fieldA))) 
.Aggregations(q => q.Terms("fieldB", r => r.Field(s => s.fieldB))) 

कौन सा दोनों में विफल रहा है

"aggs" : { 
    "fieldA" : { 
     "terms" : { 
      "field" : "fieldA" 

     } 
    }, 

    "fieldB" : { 
     "terms" : { 
      "field" : "fieldB" 

     } 
    } 
} 

मैं इस की कोशिश की है काम। क्या मैं कुछ और याद कर रहा हूँ?

उत्तर

14

तुम इतनी जैसे कई एकत्रित निर्दिष्ट कर सकते हैं:

.Aggregations(a => a 
    .Terms("fieldA", t => t.Field(s => s.FieldA)) 
    .Terms("fieldB", t => t.Field(s => s.FieldB)) 
) 

प्रत्येक एकत्रीकरण वर्णनकर्ता, आंतरिक रूप से, अपने आप में एक शब्दकोश (एक कुंजी के रूप agg नाम का उपयोग) करने के लिए कहते हैं और उसके बाद ही देता है ताकि आप लगातार अधिक जोड़ सकते हैं।

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

+1

यह खूबसूरती से काम करता है, धन्यवाद! भविष्य में अधिक दस्तावेज के लिए तत्पर हैं। –

+0

उत्तर @ एग्री के लिए धन्यवाद, मैंने अनुमान लगाया होगा कि यह एक ही ए बूल फ़िल्टर की तरह काम करेगा: .ऑग्रेगेशंस (ए => ए। टर्म ("फील्ड ए", टी => टी। फ़ील्ड (एस => एस। फ़ील्ड ए)), बी => बी। टर्म ("फील्डबी", टी => टी। फ़ील्ड (एस => एस। फ़ील्डबी)) ) – jhilden

संबंधित मुद्दे