मेरे पास लगभग 35 मिलियन दस्तावेजों वाला एक सूचकांक है।जब कोई उपयोगकर्ता खोज शब्दों और फ़िल्टर के किसी भी संयोजन के साथ कोई क्वेरी जारी करता है, तो मुझे किसी अन्य फ़ील्ड पर अद्वितीय मानों की गणना करने की आवश्यकता होती है। इसका उद्देश्य प्रश्न का उत्तर देना है "किसी दिए गए प्रश्न के साथ कितने अद्वितीय (फ़ील्ड x) हैं?"।
मुझे पूरा यकीन है कि Azure Search में "नहीं है"ऐसा करने की कोई क्षमता है, इसलिए मैंने सोचा कि मैं एक और प्रश्न करने की कोशिश करूंगा जहां मैं केवल उस क्षेत्र का चयन करता हूं जिसे मैं अलग-अलग मूल्यों की गणना करना चाहता हूं, लेकिन मुझे लगता है कि इतनी बड़ी अनुक्रमणिका के साथ यह बहुत समय लेने वाला होगा। मैं इस धारणा के तहत भी हूं कि मैं केवल अधिकतम 100,000 रिकॉर्ड छोड़ सकता हूं, जिससे मेरे लिए ऐसा करना असंभव हो जाएगा यदि कोई क्वेरी 100k से अधिक परिणाम लौटाती है।
इस बारे में कोई विचार कैसे जाना है?
धन्यवाद!
उत्तर:
जवाब के लिए 2 № 1Azure Search आज मूल्यों की अलग-अलग गणना का सीधे समर्थन नहीं करता है। इसे query के साथ संयुक्त एक क्वेरी में समर्थन देने के लिए $filter
, इसे या तो एक नए पहलू प्रकार के रूप में समर्थन करना होगा, या शायद के संयोजन के साथ $count
तथा $filter
जहां गिना जा रहा क्षेत्र प्रमुख क्षेत्र है (ध्यान दें कि $count
तथा $filter
आज जोड़ा नहीं जा सकता)।
में अलग गिनती जोड़ने के लिए स्वतंत्र महसूस करें Azure खोज फ़ीडबैक फ़ोरम सुविधा को प्राथमिकता देने में मदद करने के लिए।
मूल उत्तर
यदि आप प्रति अद्वितीय दस्तावेज़ों की संख्या चाहते हैंमूल्य, आप पहलुओं का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप $100 डॉलर से कम के जूते खोज रहे हैं और आप जानना चाहते हैं कि हिट में से प्रत्येक रंग के कितने जूते हैं, तो आप यह करेंगे:
GET /indexes/products/docs?search=shoes&$filter=price+lt+100&facet=color&api-version=2015-02-28
प्रतिक्रिया में शामिल होगा a @search.facets
संपत्ति जिसमें गिनती के साथ प्रत्येक अद्वितीय मूल्य के लिए बाल्टी होती है। आप और जानकारी पा सकते हैं यहाँ तथा यहाँ.