2012-01-03 10 views
5

मैं अपने वेबपैप के लिए MySQL डेटाबेस का उपयोग कर रहा हूं। मुझे एकाधिक कॉलम & एकाधिक कॉलम पर खोज करने की आवश्यकता है, यह उन स्तंभों के अंदर पूर्ण पाठ खोज की तरह ही है।apache solr द्वारा कितनी अतिरिक्त स्पेस/रैम/सीपीयू का उपयोग किया जाता है?

मैं के मामले में किसी भी पूर्ण पाठ खोज एपीआई (जैसे Solr/Lucene/MapReduce/Hadoop आदि ..।) सरल एसक्यूएल का उपयोग करने पर का उपयोग कर के अपने अनुभव को पता है की जरूरत है:

  1. स्पीड प्रदर्शन
  2. अतिरिक्त स्थान उपयोग
  3. अतिरिक्त CPU उपयोग (यह लगातार सूचकांक बनाने जा रहा है?)
  4. में कितना समय लगता सूचकांक का निर्माण करने के लिए या इसे इस्तेमाल के लिए तैयार हो जाओ लेता है?
  5. कृपया मुझे इन ढांचे का उपयोग करने के अपने अनुभव को बताएं।

बहुत बहुत धन्यवाद!

+1

है। –

+1

@ रोस्डी लेकिन मुझे लगता है कि, इस प्रश्न का आपके आवेदन –

उत्तर

8

आपके प्रश्नों

1.) मैं 5 लाख दस्तावेज़ के बारे में दौर के साथ एक डेटाबेस का जवाब देने के लिए। MySQL Fulltextsearch को 2-3 मिनट की आवश्यकता है। सोलर/ल्यूसीन को 200-400 मिलीसेकंड के समान खोज दौर की आवश्यकता होती है।

2.) आपको जिस स्थान की आवश्यकता है वह आपके कॉन्फ़िगरेशन, कॉपीफील्ड की संख्या और यदि आप डेटा संग्रहीत करते हैं या यदि आप केवल डेटा को अनुक्रमणित करते हैं। मेरी कॉन्फ़िगरेशन में, पूर्ण डीबी अनुक्रमित है, लेकिन केवल मेटाडेटा sored है। इसलिए 30 जीबी डीबी को सोलर/ल्यूसीन के लिए 40 जीबी की जरूरत है। ध्यान रखें, अगर आप अपनी अनुक्रमणिका को अनुकूलित (पुनः) करना चाहते हैं, तो आपको इंडेक्स-साइज का अस्थायी 100% फिर से चाहिए।

3.) यदि आप MySQL पूर्ण टेक्स्ट-इंडेक्स से लुसेन/सोलर में माइग्रेट करते हैं, तो आप CPU पावर को सहेजते हैं। MySQL फुलटेक्स्ट का उपयोग करने से सोलर फुलटेक्स्ट खोज से अधिक CPU पावर की आवश्यकता होती है -> उत्तर को देखें 1.)

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

5.) MySQL फुलटेक्स्ट-इंडेक्स से लुसेन/सोलर फुलटेक्स्टिन्डेक्स में माइग्रेट करना अब तक का सबसे अच्छा विचार था। ;-) लेकिन शायद आपको अपने आवेदन को फिर से डिजाइन करना होगा।

// संपादित सवाल का जवाब देने

यह अपने Solr विन्यास पर निर्भर करता है "Lucene सूचकांक कुछ सम्मिलित बयान के तुरंत बाद अपडेट कर दिया जाएगा", लेकिन यह संबंधित प्रोग्रामिंग नहीं संभव

+1

बहुत बहुत धन्यवाद, यह वास्तव में बहुत उपयोगी है :) – SmartSolution

+0

बिंदु और विशिष्ट विवरण के लिए। बहुत धन्यवाद – ChikuMiku

3

Q1: Lucene आमतौर पर तेजी से और अधिक शक्तिशाली सुविधाओं के मामले में (यदि सही ढंग से लागू)

Q2 है: यदि आप मूल सामग्री की दुकान नहीं है, यह आमतौर पर के 20-30% है मूल (अनुक्रमित) सामग्री

प्रश्न 4: आपकी सामग्री के आकार पर निर्भर करता है जिसे आप इंडेक्स करना चाहते हैं, आप जो प्रोसेसिंग कर रहे हैं उस पर निर्भर करता है (आप अपने स्वयं के विश्लेषक, आदि), फिर अपने हार्डवेयर ... आप करेंगे एक बेंचमार्क करना है। मेरी परियोजनाओं में से एक के लिए, पिछली बार 500 एमएम इंडेक्स बनाने के लिए 15 मिनट लग गए (बॉक्स प्रदर्शन से बाहर, कोई बदलाव नहीं किया गया), दूसरे के लिए, इसमें 17 जीबी इंडेक्स बनाने में 3 दिन लग गए।

+0

को उत्तर देने के लिए उपयोग किए जाने वाले टूल डिज़ाइन और टूल और ढांचे पर असर पड़ता है, मेरी परियोजना में, मूल रूप से उपयोगकर्ता को ज़िप/टैर फ़ाइल अपलोड करना होगा और यह पार्स किए गए और डीबी में इतने सारे रिकॉर्ड दर्ज किए जाएंगे, इसलिए मेरा सवाल है कि ल्यूसीन इंडेक्स कुछ सम्मिलित बयानों के तुरंत बाद अपडेट हो जाएगा या क्या हमें सूचकांक पुनर्निर्माण के लिए ल्यूसीन को स्पष्ट रूप से ट्रिगर करने की आवश्यकता है, मेरा मतलब है कि इंडेक्सिंग रीयलटाइम हो रही है? – SmartSolution

+0

लुसीन एक मुफ्त टेक्स्ट सर्च लाइब्रेरी है, यह सब कुछ है, यह संबंधपरक डेटाबेस, मैसेजिंग सिस्टम, जो कुछ भी हो सकता है, के बारे में कुछ भी नहीं जानता है। आप इंडेक्सिंग के लिए सामग्री भेजने के लिए और बाद में खोज के लिए एपीआई का उपयोग करेंगे। – milan

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