2010-06-14 15 views
9

के साथ विभिन्न प्रकार की इकाइयों/ऑब्जेक्ट्स को इंडेक्स करना मान लें कि मैं सोलर लुसेन का उपयोग करके अपनी दुकान को इंडेक्स करना चाहता हूं।सोलर लुसेन

मैं संस्थाओं के कई प्रकार है: उत्पाद, उत्पाद समीक्षा, लेख

मैं कैसे सूचकांक करने के लिए अपने Lucene उन प्रकार है, लेकिन अलग स्कीमा के साथ प्रत्येक प्रकार मिलता है?

उत्तर

1

हो सकता है कि आप उत्पाद, उत्पाद समीक्षा और आलेख नामक 3 अनुक्रमणिका प्राप्त करना चाहें। प्रत्येक इंडेक्स में अपनी स्कीमा हो सकती है। लुसीन और एक रिलेशनल डीबी दृष्टिकोण के बीच का अंतर यह है कि एक डीबी, में एक पंक्ति लगभग लुसीन में एक दस्तावेज़ में अनुवाद करती है। नोट: प्रत्येक दस्तावेज़ में अपनी स्कीमा हो सकती है (जो एक रिलेशनल डीबी से एक और अंतर है)।

1

लुसीन/सोलर के साथ, प्रत्येक दस्तावेज़ को प्रत्येक फ़ील्ड के लिए मान निर्धारित करने की आवश्यकता नहीं होती है। एक ही स्कीमा के भीतर, आप इकाई ए के लिए फ़ील्ड का एक सेट और इकाई बी के लिए फ़ील्ड्स का एक और सेट प्राप्त कर सकते हैं और इकाई के आधार पर उपयुक्त फ़ील्ड को पॉप्युलेट कर सकते हैं।

सौर के साथ, आपके पास बहु-कोर जाने का विकल्प भी है। प्रत्येक कोर की अपनी स्कीमा होती है। आप प्रत्येक इकाई के लिए कोर परिभाषित कर सकते हैं।

5

मैं आपकी अनुक्रमणिका को इस तरह से बनाने की अनुशंसा करता हूं कि आपके सभी संस्थाओं में समान मूल फ़ील्ड कम या कम हों: title, content, url, uuid, entity_type, entity_sourcename इत्यादि। यदि आपकी प्रत्येक संस्था के पास संबंधित इंडेक्स फ़ील्ड का अनूठा सेट है, तो आपको कठिन समय बनाना होगा एक साथ सभी इकाइयों को खोजने के लिए पूछताछ करें, और आपके परिणाम देखने में एक बड़ी गड़बड़ी हो सकती है। यदि आपको किसी विशिष्ट इकाई के लिए कुछ विशिष्ट फ़ील्ड की आवश्यकता है, तो इसे जोड़ें और इस इकाई के लिए इसके entity_type के आधार पर विशेष तर्क करें।

मैं अनुभव से बात कर रहा हूं: हम 10 से अधिक विभिन्न इकाइयों के साथ एक सूचकांक का प्रबंधन कर रहे हैं और यह दृष्टिकोण आकर्षण की तरह काम करता है।

पीएस कुछ अन्य सरल सलाह।

  1. सुनिश्चित करें कि आपके Lucene दस्तावेज़ आवश्यक डेटा के सभी परिणाम का निर्माण और उपयोगकर्ता के लिए यह दिखाने (ताकि आप डेटाबेस के लिए जाने के लिए परिणाम के निर्माण के लिए जरूरत नहीं है) करने के लिए शामिल करें। ल्यूसीन क्वेरी आमतौर पर डेटाबेस प्रश्नों की तुलना में बहुत तेज होती हैं।
  2. यदि आपको अपने परिणाम सेट (उदा। अनुमतियों को लागू करने के लिए) बनाने के लिए डेटाबेस का उपयोग करने की आवश्यकता है, तो परिणामों को संकीर्ण करने के लिए पहले ल्यूसीन क्वेरी का उपयोग करें, उन्हें फ़िल्टर करने के लिए डेटाबेस क्वेरी दूसरा।
  3. यदि आपको इसकी आवश्यकता हो तो अपने कुछ दस्तावेज़ों में कस्टम फ़ील्ड जोड़ने से डरो मत: ल्यूसीन दस्तावेज़ को कुंजी-मूल्य डेटास्टोर के रूप में सोचें।
2

मल्टी-कोर देखभाल के साथ उपयोग करने का एक दृष्टिकोण है। आपके जैसे सरल स्कीमा के साथ, यह buru अनुशंसाओं के रूप में करने के लिए एक बेहतर तरीका है। इसका मतलब है कि आप अपनी अलग-अलग इकाइयों के बीच सामान्य क्षेत्रों को ढूंढें, और फिर उन फ़ील्ड्स का उपयोग केवल उन पर या उनमें से कई द्वारा किया जाएगा। फिर आप एक फ़ील्ड "टाइप" या "टाइप_आईडी" जोड़ सकते हैं जो कहेंगे कि आपकी इकाई उत्पाद है, उत्पाद समीक्षा ...

ऐसा करने से आपको एक अनूठी अनुक्रमणिका मिल सकती है, और तेजी से प्रश्नों को संसाधित करने में मदद मिलेगी।