के साथ काम नहीं करता है, मैं नेस्टेड फ़ील्ड के साथ काम करने के लिए लोचदार पृथक्करण + फ़िल्टर नहीं कर सकता। डेटा स्कीमा (प्रासंगिक भाग) इस तरह है:लोचदार खोज एकीकरण नेस्टेड-प्रकार के फ़ील्ड
"mappings": {
"rb": {
"properties": {
"project": {
"type": "nested",
"properties": {
"age": {
"type": "long"
},
"name": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}
अनिवार्य रूप से "rb" वस्तु एक नेस्टेड क्षेत्र "परियोजना" जो दो और फ़ील्ड हैं कहा जाता है - "नाम" और "उम्र"। क्वेरी मैं चल रहा हूँ:
"aggs": {
"root": {
"aggs": {
"group": {
"aggs": {
"filtered": {
"aggs": {
"order": {
"percentiles": {
"field": "project.age",
"percents": ["50"]
}
}
},
"filter": {
"range": {
"last_updated": {
"gte": "2015-01-01",
"lt": "2015-07-01"
}
}
}
}
},
"terms": {
"field": "project.name",
"min_doc_count": 5,
"order": {
"filtered>order.50": "asc"
},
"shard_size": 10,
"size": 10
}
}
},
"nested": {
"path": "project"
}
}
}
इस क्वेरी कम से कम 5 के साथ शीर्ष 10 परियोजनाओं (project.name क्षेत्र) जो आज फिल्टर, उनकी औसत उम्र के अनुसार क्रमबद्ध मेल खाते हैं, परियोजनाओं अनदेखी निर्माण करने के लिए माना जाता है डेटाबेस में उल्लेख है । मध्यस्थ की गणना केवल फ़िल्टर (दिनांक सीमा) से मेल खाने वाली परियोजनाओं के लिए की जानी चाहिए।
डेटाबेस में सौ से अधिक हजार वस्तुओं के बावजूद, यह क्वेरी खाली सूची उत्पन्न करती है। कोई त्रुटि नहीं, बस खाली प्रतिक्रिया। मैंने इसे ES 1.6 और ES 2.0-beta दोनों पर आजमाया है।
यह काम करता है! वास्तव में मुझे 10 मान वापस पाने के लिए shard_size 100 तक बढ़ाना पड़ा। क्या आप समझते हैं कि मेरा मूल संस्करण क्यों काम नहीं करता? क्या यह ईएस में एक प्रतिबंध है कि यह नेस्टेड फ़ील्ड के अंदर फ़िल्टर का समर्थन नहीं करता है? – extesy
'नेस्टेड' समेकन के अंदर आप केवल नेस्टेड फ़ील्ड का संदर्भ दे सकते हैं। इसके अलावा, यह 'last_updated' के आधार पर पहले डेटा को फ़िल्टर करने और केवल नेस्टेड डेटा पर काम करने के लिए अधिक समझ में आता है। – Val
@ वैल - क्या आप कृपया मुझे बता सकते हैं कि मैं इसे बहुउद्देशीय बाल्टी के लिए कैसे कर सकता हूं? अलग प्रश्न - http://stackoverflow.com/questions/43451667/elasticsearch-ordering-aggregation-by-nested-aggregation-on-nested-field –