यदि मैं पहले से ही एक ग्राफ डेटाबेस का उपयोग करता हूं तो मैं इलास्टिकसर्च का उपयोग क्यों करूंगा?


15

मुझे ElasticSearch और ग्राफ़ डेटाबेस के बीच तुलना के बारे में वेब पर कोई गहरी व्याख्या नहीं मिलती है।

दोनों ट्रैवर्स डेटा के लिए अनुकूलित हैं।
ElasticSearch एनालिटिक्स के लिए अनुकूलित प्रतीत होता है।
हालांकि Neo4j भी इंडेक्स और कुछ फुलटेक्स्ट फीचर्स को मैनेज करने के लिए ल्यूसीन पर आधारित है।

यदि मैं पहले से ही एक ग्राफ डेटाबेस का उपयोग करता हूं तो मैं इलास्टिकसर्च का उपयोग क्यों करूंगा?

मेरे मामले में, मैं एक सामाजिक नेटवर्क बनाने के लिए Neo4j का उपयोग कर रहा हूं ।
ElasticSearch क्या वास्तविक लाभ ला सकता है?

अपडेट करें ----------

मुझे यह पैराग्राफ बस मिल गया है:

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

  • किसी विशिष्ट वाक्यांश के लिए सर्वोत्तम मिलान के लिए उत्पाद विवरणों की एक बड़ी संख्या की खोज ("शेफ्स नाइफ") और सर्वोत्तम परिणाम लौटाएं
  • पिछले उदाहरण को देखते हुए, विभिन्न विभागों को तोड़कर जहां "महाराज की चाकू" दिखाई देती है (इस पुस्तक में बाद में मुखरता देखें)
  • "सीजन" जैसे शब्दों के लिए पाठ खोजना
  • गलत वर्तनी के लिए लेखांकन करते समय पहले से जारी खोजों के आधार पर आंशिक रूप से टाइप किए गए शब्दों के आधार पर एक खोज बॉक्स को स्वतः पूर्ण करना
  • एक वितरित फैशन में अर्ध-संरचित (JSON) डेटा की एक बड़ी मात्रा को संग्रहीत करना, मशीनों के एक समूह में अतिरेक के एक निर्दिष्ट स्तर के साथ।

हालांकि, यह ध्यान दिया जाना चाहिए कि जब इलास्टिक्स खोज उपरोक्त समस्याओं को हल करने में महान है, तो यह दूसरों के लिए सबसे अच्छा विकल्प नहीं है। यह समस्याओं को हल करने में विशेष रूप से बुरा है, जिसके लिए संबंधपरक डेटाबेस अनुकूलित हैं। समस्याएँ जो नीचे सूचीबद्ध हैं।

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

क्या मैं यह दावा कर सकता हूं कि अगर मुझे अनुमानित उत्तरों की आवश्यकता नहीं है, तो पहले से इस्तेमाल किए गए ग्राफ डेटाबेस की तुलना में ElasticSearch बेकार होगा?


जवाबों:


17

मैं ElasticSearch को डेटाबेस कहने में संकोच करता हूँ। यह एक डेटाबेस के लिए एक प्रतिस्थापन नहीं है, लेकिन यह आपके मौजूदा डेटाबेस के साथ-साथ कार्यक्षमता, विशेष रूप से उन्नत पाठ खोज को जोड़ने के लिए एक अच्छा अतिरिक्त बनाता है।

मैं देखता हूं कि आप उन्हें कहां से भ्रमित कर सकते हैं। वे वास्तव में एक ही जरूरत को फिट कर सकते हैं, लेकिन हमेशा नहीं। ElasticSearch यह कैसा, लगता है बिल्कुल वही करती खोजें । एक ग्राफ़ डेटाबेस संबंध या इंडेक्स को निर्दिष्ट नहीं करता है, जहां ElasticSearch करता है। इसलिए मौलिक रूप से वे काफी अलग तरीके से काम करते हैं। ElasticSearch उदाहरण के लिए, अंग्रेजी विश्लेषक के साथ दस्तावेजों का विश्लेषण करता है । यह क्या करता है यह शब्दों को ले जाएगा और उस शब्द या समानार्थक शब्द के विभिन्न रूपों का विश्लेषण करेगा। उदाहरण के लिए, के digरूप में किया जाएगा dig,digs,dug,digging,digger ...। जब आप elasticsearch पर एक क्वेरी चलाते हैं तो आपके प्रश्नों का विश्लेषण भी किया जा सकता है, फिर उन शब्दों के लिए खोज की जाती है और प्रासंगिकता से स्कोर किया जा सकता है ।

ElasticSearch एक महान उपकरण है, क्योंकि यह वास्तव में लचीला है। आप सापेक्ष सामग्री की एक विस्तृत श्रृंखला पा सकते हैं, या आप घास स्टैक में एक सुई पा सकते हैं, और इसकी अपेक्षाकृत आसान है।

ग्राफ डेटाबेस के अपने लाभ भी है। उदाहरण के लिए हैश टैग जैसी चीजों के बीच प्रासंगिकता / संबंध खोजना, या कई परस्पर संबंधों के साथ चीजें। वे प्रौद्योगिकी के महान और दिलचस्प टुकड़े हैं, हालांकि मुझे यह कहना होगा कि इसका इलास्टिकशर्च उतना शक्तिशाली नहीं है। अधिकतर इसलिए कि इलास्टिक खोज इस प्रकार की दिशा में सक्षम है, और यह आपके लिए विश्लेषण को संभालता है ताकि आप पूर्ण-पाठ खोज कर सकें। हालाँकि यदि आप एक ऐसी प्रणाली का उपयोग करना चाहते हैं, जैसे कि ट्विटर की खोज जो पूर्वनिर्धारित टैगिंग / कीवर्ड पर आधारित है, तो आप अपने पहले से उपयोग किए जा रहे ग्राफ़ डेटाबेस का उपयोग करना बेहतर समझेंगे।

सवाल यह है कि आप अपनी खोज को कितना मजबूत करना चाहते हैं? यदि आपको वास्तव में बढ़िया अनाज (पूर्ण पाठ) खोज करने की आवश्यकता है, तो मैं इलास्टिक्स खोज का उपयोग करूँगा। अन्यथा आप हमेशा ग्राफ़ डेटाबेस पर अपेक्षाकृत आसानी से खोज को कार्यान्वित कर सकते हैं। एक बार जब आप खोज को लागू कर लेते हैं, तो एलेस्टिक्स को माइग्रेट करना असंभव नहीं होता है, यदि आप बाद में खुद को एक अधिक मजबूत खोज इंजन की आवश्यकता पाते हैं, तो बस अपनी खोज को ध्यान में रखते हुए लागू करें।


3

इन दोनों डेटाबेस में आवेदन की आवश्यकता के निश्चित स्तर पर विशिष्ट समस्या को हल करने की अपनी विशिष्ट आवश्यकता है। हालांकि हमने ग्राफ डेटाबेस का उपयोग नहीं किया है। लेकिन हम पिछले 5 वर्षों से अपनी एक परियोजना में माईएसक्यूएल के साथ इलास्टिक्स खोज का उपयोग कर रहे हैं। उस परियोजना में 6 मी दस्तावेजों के माध्यम से खोजा जाने वाला एक विशाल डेटा है और उन संस्थाओं (10 मीटर संबंध दस्तावेजों) के बीच बड़े पैमाने पर संबंध हैं।

केस का उपयोग करें: उन होटलों के माध्यम से खोजें, जो मेरे दोस्तों द्वारा पसंद किए गए हैं और सभी होटलों को उनकी पसंद की संख्या के साथ क्रमबद्ध करते हैं। और अगर आप इसे करीब से देखते हैं। इस मामले में 2 संबंध (मित्र, पसंद) शामिल हैं। इसलिए मुझे होटल और माय फ्रेंड्स के बीच लाइक रिलेशनशिप शिप के माध्यम से खोजना होगा और फिर होटल को उनके द्वारा पसंद की गई कुल संख्याओं के अनुसार क्रमबद्ध करना चाहिए। तो ऐसी खोजों के लिए, ग्राफ़ डेटाबेस अच्छा है।

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

इसलिए अपनी एप्लिकेशन आवश्यकता को समझें और फिर डेटाबेस के लिए जाएं। आपको दोनों की आवश्यकता हो सकती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.