में केवल मिलान किए गए नेस्टेड ऑब्जेक्ट मानों से कुल मिलाकर मुझे क्वेरी से मेल खाने वाले नेस्टेड ऑब्जेक्ट्स पर केवल मानों को जोड़ना होगा। ऐसा लगता है कि लोचदार खोज क्वेरी से मेल खाने वाले दस्तावेजों को निर्धारित करती है और फिर सभी नेस्टेड ऑब्जेक्ट्स पर रकम करती है। नीचे की रूपरेखा से मैं nestedobjects.objtype = "ए" पर खोज करना चाहता हूं और केवल nestedobjects से मेल खाने के लिए objvalue की राशि वापस प्राप्त करना चाहता हूं, मैं मान 4 प्राप्त करना चाहता हूं। क्या यह संभव है? यदि हां, तो कैसे?ElasticSearch
यहाँ मानचित्रण
{
"myindex": {
"mappings": {
"mytype": {
"properties": {
"nestedobjects": {
"type": "nested",
"include_in_parent": true,
"properties": {
"objtype": {
"type": "string"
},
"objvalue": {
"type": "integer"
}
}
}
}
}
}
}
}
यहाँ मेरी दस्तावेजों
PUT /myindex/mytype/1
{
"nestedobjects": [
{ "objtype": "A", "objvalue": 1 },
{ "objtype": "B", "objvalue": 2 }
]
}
PUT /myindex/mytype/2
{
"nestedobjects": [
{ "objtype": "A", "objvalue": 3 },
{ "objtype": "B", "objvalue": 3 }
]
}
यहाँ मेरी क्वेरी कोड है कर रहे हैं।
POST allscriptshl7/_search?search_type=count
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "nestedobjects.objtype:A"
}
}
}
},
"aggregations": {
"my_agg": {
"sum": {
"field": "nestedobjects.objvalue"
}
}
}
}
धन्यवाद, मैं इसे थोड़ा सा परीक्षण करूंगा। – user481779
विज्ञापित के रूप में काम करता है! – user481779
कोई वास्तविक समाधान नहीं: फ़िल्टर के लिए पूर्व-ज्ञात मानों पर निर्भर करता है, हिस्टोग्राम, date_histogram या अप्रत्याशित कुंजी वाले शब्दों के साथ काम नहीं करता है। – Sebastian