2011-12-09 11 views
6

मैंने elasticsearch और Solr के लिए स्केलेबिलिटी, गति और तैनाती परिदृश्य की तुलना में कई प्रश्न (और अच्छे उत्तरों) देखे हैं, लेकिन मुझे किसी भी अंतर के बारे में अच्छी जानकारी नहीं मिल रही है या अनुक्रमित डेटा के साथ कैसे काम करने में सक्षम हैं की सापेक्ष शक्तियां।डेटा संरचना/क्वेरी सुविधाओं के बारे में elasticsearch बनाम solr

विशेष रूप से, मैं निम्नलिखित क्षेत्रों में elasticsearch और Solr के बीच मतभेद में दिलचस्पी रखता हूँ:

  1. faceting क्षमताओं: कैसे करना faceting के अपने को संभालने भिन्न होते हैं, या वे मूलतः एक ही कर रहे हैं?

  2. स्कीमा से निपटने: लगता है कि elasticsearch कि स्कीमा में एक लचीलापन धार, बाकी एपीआई के माध्यम से उड़ान भरने पर परिभाषित किया जा सकता है जबकि Solr उन्हें आवश्यकता के लिए जा schemas.xml में पूर्व-निर्धारित (मैंने नहीं देखा है हालांकि, इस अंतर की विशिष्ट पुष्टि)। क्या इसके अलावा स्कीमा का उपयोग कैसे किया जाता है, इसमें काफी अंतर हैं?

  3. इंडेक्सिंग फ़िल्टर: क्या विशिष्ट खोजों के लिए डेटा को अनुकूलित किया जा सकता है के बीच अंतर है? जैसे मैंने सोलर के लिए फ़ील्ड डुप्लिकेशन और क्वेरी टोकननाइजेशन फ़िल्टर जैसी चीजों का उल्लेख देखा है जो खोज एल्गोरिदम की अनुकूलता में जोड़ते हैं, लेकिन लोचदार खोज के संबंध में समान प्रकार की अधिक जानकारी नहीं देखी है, लेकिन हो सकता है कि यह केवल इन सभी सामानों को स्वचालित रूप से संभाल लें?

  4. क्वेरी व्यक्तित्व: क्या क्वेरी डीएसएल मूल रूप से एक दूसरे के रूप में अभिव्यक्तिपूर्ण है, या मौलिक मतभेद हैं?

  5. "बूस्टिंग" और/या परिणाम अनुकूलन: हार्डकोडिंग या एल्गोरिदमिक खोज परिणामों को मालिश करने के लिए क्या सुविधाएं हैं?

फिर से, कृपया ध्यान दें कि मैं बिल्कुल भी गति/scalbility/performace मुद्दों में कोई दिलचस्पी नहीं है, बस खोज डेटा संरचना और क्वेरी भाषा का expressivity - संभवत: इस पूरे प्रश्न के रूप में संक्षेप किया जा सकता है: क्या कोई ऐसी खोज है जो मैं कर सकता हूं या डेटा संरचना जो मैं लोचदार खोज में बना सकता हूं जिसे मैं सोलर में दोहराना नहीं कर सकता, या इसके विपरीत? कि ते छोड़कर गतिशील स्क्रिप्ट के माध्यम से भी यह अनुमति देता है और Solr पहलू पृष्ठांकन की अनुमति देता है

उत्तर

7
  1. faceting, लगभग एक ही है। सोलर में भी सरल दुकान खोज शैली पहलू करने के लिए सुविधाजनक सुविधा स्कीमा है (नोट: यह ईएस के साथ भी सापेक्ष आसान है लेकिन बॉक्स से बाहर नहीं है)। ES faceting अधिक शक्तिशाली हो सकता है क्योंकि फ़िल्टरक्विरी में पहलुओं को बांधने की कोई आवश्यकता नहीं है।

  2. ईएस स्कीमा के लिए एपीआई के माध्यम से अपडेट किया जा सकता है! या इसे किसी फ़ाइल में परिभाषित करें और प्रकार के लिए निर्दिष्ट है। सोलर के लिए आप प्रति इंडेक्स पर कॉन्फ़िगरेशन फ़ाइल बनाते हैं। बीटीडब्ल्यू: गतिशील क्षेत्रों के साथ आपके पास सोलर के लिए कम प्रतिबंधित स्कीमा है।

  3. ईएस केवल ऑटोवर्मिंग सुविधा को याद करता है (लेकिन यह प्रदर्शन आपके लिए दिलचस्प नहीं है;)) और सुविधा के अनुसार समूह। अन्यथा दोनों समान ल्यूसीन सामान का उपयोग करता है। ईएस बहुत उन्नत संयोजनों की अनुमति देता है जैसे ल्यूसीन में यह संभव है। अभिभावक बच्चा सुविधा के अनुसार समूह के समान है और इसे सोलर आईएमओ में लागू नहीं किया गया है।

  4. ईएस के लिए मानक क्वेरी जेएसओएन के माध्यम से तैयार की जाती है और इसलिए आप ल्यूसीन के माध्यम से लगभग हर चीज बना सकते हैं। सोलर में आप बहुत सी उन्नत चीजें कर सकते हैं लेकिन अक्सर आपको स्थानीय पैरा आदि जैसे सोलर सामान के कुछ मौलिक ज्ञान की आवश्यकता होती है। इस nice discussion पर एक नज़र डालें।

  5. समझ में नहीं आता है कि यह :)

वहाँ एक खोज मैं प्रदर्शन कर सकते हैं या एक डेटा संरचना मैं elasticsearch कि मैं Solr में दोहराने नहीं कर सकते, या इसके विपरीत में बना सकते हैं?

ईएस में परकोलेटर सुविधा है जो शायद सोलर के साथ कार्यान्वित करना कठिन है। ईएस में आपके पास आशावादी लॉकिंग को लागू करने के लिए वर्जनिंग सुविधा भी है, आपके पास इंडेक्स एलियासिंग और स्कैन क्वेरी है जो आपके इंडेक्स के माध्यम से गहराई से नेविगेट करने के लिए है - सुनिश्चित नहीं है कि सोलर की समान विशेषताएं हैं या नहीं। जैसे एलियासिंग rolling index implementation. रिश्तेदार कम करने में मदद करता है।

+0

re # 5: मैंने कहीं पढ़ा है कि सोलर में आप खोज एल्गोरिदम के चारों ओर एक अंत-दौड़ कर सकते हैं, यानी आप वेटिंग शब्द को बदलने के बिना कुछ हद तक खोज परिणामों को "ठीक" कर सकते हैं। तो, उदाहरण के लिए, आप कह सकते हैं कि जब भी क्वेरी में एक विशिष्ट शब्द होता है, तो आप एक निश्चित दस्तावेज़ को पहला परिणाम चाहते थे, भले ही खोज एल्गोरिदम सामान्य रूप से उस दस्तावेज़ को वापस नहीं करेगा। हालांकि, मुझे वास्तव में यह पूरा करने के बारे में जानकारी कभी नहीं मिली, हालांकि। –

+0

हम्म, इसके बारे में निश्चित नहीं है। लेकिन इंडेक्सिंग और पूछताछ के दौरान सामान्य रूप से बढ़ाना किया जा सकता है। क्या आपका यह मतलब है? उदाहरण देखें ईएस चर्चा में यह नवीनतम प्रविष्टि: http://groups.google.com/group/elasticsearch/browse_thread/thread/f9d0ebdd0225243c# – Karussell

+1

और यहां एक सोलर दस्तावेज़ है http://wiki.apache.org/solr/FunctionQuery btw: में ईएस स्क्रिप्टिंग कार्यक्षमता बढ़ाने के लिए अधिक उन्नत आईएमओ है: http://www.elasticsearch.org/guide/reference/query-dsl/custom-score-query.html – Karussell

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