2013-03-07 6 views
5

मैं वर्तमान में लुसीन का उपयोग कर रहा हूं। मेरी आवश्यकता फेसबुक खोज बॉक्स की तरह है। उपयोगकर्ता खोज लोग और दोस्तों। लेकिन मेरी आवश्यकता में उपयोगकर्ता के पास गोपनीयता सेटिंग्स जैसे नाम, स्थान, ईमेल पता हर किसी या केवल दोस्तों के लिए दृश्यमान होते हैं। वह इन क्षेत्रों को मित्रों और समुदाय के अन्य सदस्यों से दिखा और छुपा सकता है।Grails खोजेबल प्लगइन - फ़िल्टरिंग परिणाम सेट

मैंने नाम, स्थान और ईमेल पते के आधार पर सरल खोज लागू की है। लेकिन अब मैं गोपनीयता सेटिंग्स के आधार पर खोज संशोधित कर रहा हूं।

यहाँ मेरी परिदृश्य .. है

उपयोगकर्ता A गोपनीयता सेटिंग है:
नाम केवल दोस्तों के
ईमेल हर एक
स्थान को दिखाया गया है करने के लिए दिखाया गया है किसी भी एक को नहीं दिखाया गया है।

उपयोगकर्ता उपयोगकर्ता A खोज बॉक्स में की एक्स प्रकार स्थान तो यह परिणाम में नहीं होना चाहिए। लेकिन अगर उपयोगकर्ता एक्स का नाम उपयोगकर्ता ए खोज बॉक्स में है तो यह दिखाया जाना चाहिए क्योंकि उपयोगकर्ता ए ने नाम प्रतिबंधित नहीं किया है और यह गोपनीयता सेटिंग्स में अपने दोस्तों के लिए दृश्यमान है।

क्या आप कृपया मुझे दृष्टिकोण के लिए मार्गदर्शन कर सकते हैं।

मुझे बताएं कि क्या मैंने अपनी आवश्यकता स्पष्ट रूप से नहीं लिखी है।

मैं विश्लेषण किया है निम्नलिखित दृष्टिकोण,
1- IndexSearcher की विधि समझाने (यह हिट हो जाएगा समग्र प्रदर्शन)
2- पता लगाया फिल्टर लेकिन ज्यादा

मेरे दृष्टिकोण नहीं मिल सका:

परिणाम प्राप्त करें नाम के आधार पर
परिणाम प्राप्त करें स्थान के आधार पर सेट करें
परिणाम प्राप्त करें ईमेल पते के आधार पर

प्रत्येक 3 परिणाम सेट पर लूप और गोपनीयता सेटिंग्स से संबंधित स्थितियों को लागू करें और गोपनीयता सेटिंग्स के आधार पर आइटम को बहिष्कृत करें। और अंत में सभी 3 परिणाम सेट मर्ज करें।

यदि कोई अन्य दृष्टिकोण है? कृपया मेरे साथ साझा करें। धन्यवाद।

+0

मैंने यह भी विश्लेषण किया है कि हाइलाइटर कैसे काम करता है। लेकिन यह केवल पाठ से जांचता है। –

उत्तर

1

क्या आप आवश्यकता के अनुसार ल्यूसीन क्वेरी बनाने के लिए खोज योग्य प्लगइन में ल्यूसीन क्वेरी सिंटैक्स का उपयोग कर सकते हैं।

आप here या here

आप डिफ़ॉल्ट गुण सेटिंग अधिभावी द्वारा seaching सीमित कर सकते हैं पा सकते हैं। आपको बस इस तरह आवेदन करने की आवश्यकता है ....

class A { 
     String x 
     String y 
     String z 

    static searchable = [only: ['x', 'y']] 
    // … 
} 

इसका उपयोग करके आप खोजने योग्य गुणों को प्रतिबंधित कर सकते हैं।

संबंधित मुद्दे