मैं कर रहा हूँ काफी नया करने के लिए elasticsearch (हालांकि एक निष्पक्ष बिट SQL अनुभव) और वर्तमान में हूँ के साथ संघर्ष कर रही एक उचित क्वेरी । मैं 2 बूलियन फ़ील्ड isPlayer
और isEvil
है कि एक प्रविष्टि, या तो है true
या false
पर. उस आधार पर, मैं विभाजित करना चाहते हैं मेरे डेटासेट को 4 समूहों में:
- isPlayer: यह सच है, isEvil: यह सच है
- isPlayer: यह सच है, isEvil: झूठी
- isPlayer: झूठी, isEvil: यह सच है
- isPlayer: झूठी, isEvil: झूठी
इन समूहों मैं चाहता हूँ करने के लिए बेतरतीब ढंग से क्रमबद्ध स्वयं के भीतर है, तो उन्हें संलग्न किया जा करने के लिए एक लंबी सूची है कि मैं कर सकते हैं, पृष्ठ पर अंक लगाना. मैं क्या करना चाहते हैं कि प्रश्न के रूप में, की तरह लगता है कि "सही" जिस तरह से ऐसा करने के लिए, के बाद से मैं कर सकता हूँ यह इसी तरह SQL. उस सूची में, समूहों के लिए कर रहे हैं हल किया जा क्रम में, तो पहले सभी प्रविष्टियों के समूह 1 एक यादृच्छिक क्रम में, तो सभी प्रविष्टियों 2 समूह के एक यादृच्छिक क्रम में, तो सभी प्रविष्टियों के समूह 3 आदि. . यह आवश्यक है कि randomness की छँटाई प्रतिलिपि प्रस्तुत करने योग्य है, तो दिया ही आदानों, तो छँटाई पर आधारित है random_score
आदर्श रूप में मैं का उपयोग किया था के लिए एक बीज randomness.
मैं का निर्माण कर सकते हैं एक ही प्रश्न, लेकिन मैं कैसे गठबंधन 4?
के रूप में दृष्टिकोण मैं अब तक पाया है MultiSearch और अलगाव अधिकतम क्वेरी. MultiSearch की तरह लगता है, यह समर्थन नहीं करता है, पृष्ठ पर अंक लगाना. के बारे में अलगाव अधिकतम प्रश्न यह हो सकता है कि मैं याद कर रहा हूँ पेड़ों के लिए जंगल है, लेकिन वहाँ मैं संघर्ष कर रहा हूँ होने में की जाने वाली सबक्वेरी हो बेतरतीब ढंग से हल के भीतर ही से पहले खुद को जोड़कर उन्हें एक दूसरे के लिए.
यहाँ मैं कैसे लिखने के लिए एक एकल क्वेरी के लिए अब बिना Disjunction Max Query
मामले में , यह मदद करता है:
{
"query": {
"bool": {
"should": [
{
"term": {
"isPlayer": true
}
},
{
"term": {
"isEvil": true
}
}
]
}
}
}