मुझे लगता है कि मेरी दृष्टिकोण @ aitchnyu का जवाब करने के समान होगा। हालांकि मैं मेटा डेटा में व्यक्तिगत उपयोगकर्ताओं का उपयोग नहीं करता। यदि आप प्रत्येक दस्तावेज़ के लिए समूह बनाते हैं, तो आपको कम से कम सुरक्षा कारण के लिए रीइंडेक्स करना होगा।
दिए गए दस्तावेज़ के लिए, आप access_roles हो सकता है: group_1, group_3
इस तरह, group_1 और group_3 हमेशा दस्तावेज़ के अधिकार हैं। हालांकि, मैं बदल सकता हूं कि प्रत्येक उपयोगकर्ता किस समूह से संबंधित है और तदनुसार क्वेरी समायोजित करता है।
जब क्वेरी उत्पन्न होती है, तो यह हमेशा उपयोगकर्ता के समूह की क्वेरी के हिस्से के रूप में गुजरती है। मैं group_1 और group_2 के हैं, मेरी क्वेरी इस तरह दिखेगा:
q=mainquery
&fq=access_roles:group_1
&fq=access_roles:group_2
के बाद से समूह गतिशील क्वेरी में उत्पन्न कर रहे हैं, मैं बस एक उपयोगकर्ता समूह से, हटाने, और जब एक नई क्वेरी जारी किया जाता है वे क्वेरी में हटाए गए समूह को अब शामिल नहीं किया जाएगा।
q=mainquery
&fq=access_roles:group_2
सभी दस्तावेजों है कि समूह 1 की आवश्यकता नहीं रह गया उपयोगकर्ता के लिए सुलभ हो जाएगा: तो group_1 से उपयोगकर्ता को हटाने के नए इस तरह एक प्रश्न बन जाएगा।
यह अधिकांश वास्तविक समय में किए जाने वाले परिवर्तनों को दस्तावेजों को पुनर्निर्मित करने की आवश्यकता को बाहर करने के लिए अनुमति देता है। सुरक्षा कारणों से आपको पुनर्विचार करना एकमात्र कारण यह है कि यदि आपने फैसला किया है कि किसी विशेष समूह को अब किसी दस्तावेज़ तक पहुंच नहीं होनी चाहिए।
कई वास्तविक दुनिया परिदृश्यों में, यह अपेक्षाकृत असामान्य घटना होनी चाहिए। ऐसा लगता है कि मानव संसाधन विभाग हमेशा मानव संसाधन विभाग के लिए उपलब्ध होंगे, हालांकि एक विशिष्ट उपयोगकर्ता हमेशा मानव संसाधन समूह का हिस्सा नहीं हो सकता है।
उम्मीद है कि मदद करता है।
इस दृष्टिकोण का अर्थ है कि जब मुझे एक्सेस भूमिकाओं में कोई परिवर्तन होता है तो मुझे रीइंडेक्स करना होगा? इससे बचने के लिए कोई मतलब है? – Manny
जब आप ** दस्तावेज़ ** की पहुंच भूमिका को बदलना चाहते हैं, तो आपको रीइंडेक्स करना होगा, दस्तावेज़ की किस तरह की पहुंच भूमिका एक्सेस कर सकती है। यह ** प्रश्न ** है जो प्रत्येक उपयोगकर्ता के लिए अलग है। – aitchnyu
उस – aitchnyu