मेरा मानना है कि प्राथमिक रिकॉर्ड को SQL डेटाबेस में रखना और उन्हें एक noSQL डेटाबेस में डुप्लिकेट करना एक बहुत ही सामान्य तरीका है।
ElasticSearch में उनके लचीलापन के बारे में एक चालू स्थिति पृष्ठ है। . नवीनतम संस्करण में भी, ElasticSearch डेटा को कई अलग-अलग में खो सकता है स्थितियां . ElasticSearch अनुक्रमणिका (जैसे विश्लेषक जोड़ना) की संरचना में एक बड़े बदलाव के लिए आवश्यक है कि आप पुनः अनुक्रमणिका सभी दस्तावेज। यदि आपके पास दस्तावेज़ों के लिए कोई अन्य स्रोत है तो यह प्रक्रिया सुरक्षित है। दिन के अंत में, ElasticSearch को दस्तावेज़ों को लगातार संग्रहीत करने के लिए डिज़ाइन नहीं किया गया है - मैं केवल ElasticSearch का उपयोग प्राथमिक स्टोर के रूप में उन स्थितियों में करना चुनूंगा जहां कभी-कभार डेटा हानि एक आपदा नहीं है।
ElasticSearch के विपरीत, MongoDB को लचीला होने के लिए डिज़ाइन किया गया है . आपको MongoDB में दस्तावेज़ों को सुरक्षित रूप से संग्रहीत करने में सक्षम होना चाहिए। मैंने पाया है कि MongoDB में पूर्ण पाठ खोज करने की कोशिश करना थोड़ा दर्दनाक हो सकता है, कम से कम ElasticSearch की तुलना में। मेरी राय में, पाठ खोज के लिए, MongoDB का MySQL के पूर्ण पाठ यह है कि यह वितरित किया जाता है।
हम अभी ElasticSearch और MySQL चला रहे हैं - और लाभ अतिरिक्त बुनियादी ढांचे की परेशानी और दोनों के बीच प्रतिकृति से निपटने से बहुत अधिक हैं। हमने पहले विनाशकारी परिणामों के साथ प्राथमिक डेटास्टोर के रूप में एक नोएसक्यूएल समाधान का उपयोग करने का प्रयास किया था। एक MySQL के साथ एक ES चलाने से आप दोनों दुनिया के सर्वश्रेष्ठ प्राप्त कर सकते हैं - SQL में डेटा की स्थिरता और सुरक्षा, ES में स्केलेबल, प्रभावी पूर्ण टेक्स्ट खोज के साथ।