آموزش ديتابيس مونگو و الستيك سرچ- MongoDB & Elasticsearch tutorial
239 subscribers
18 photos
به صورت كاربردي نحوه كار و استفاده از MongoDb و Elasticsearch رو ياد خواهيد گرفت.

No-SQL
MongoDB
Elasticsearch


ارتباط با من:

@RzaMlk7
Download Telegram
🔹قابليت Fuzzy Matching در الستيك سرچ اين امكان را نيز مي دهد تا جستجو به صورت misspelling نيز محقق شود.

🔹براي نمونه فرض كنيد كاربري مي خواهد نام عليرضا را جستجو كند و در ديتابيس ركوردها به صورت زير ذخيره شده اند:

▪️ركورد١: عليرضا
▪️ركورد٢: علي رضا

با بهره گيري از قابليت Fuzzy Matching, هر دو ركورد به كاربر نمايش داده مي شود.
👍2
آموزش ديتابيس مونگو و الستيك سرچ- MongoDB & Elasticsearch tutorial pinned «🔹قابليت Fuzzy Matching در الستيك سرچ اين امكان را نيز مي دهد تا جستجو به صورت misspelling نيز محقق شود. 🔹براي نمونه فرض كنيد كاربري مي خواهد نام عليرضا را جستجو كند و در ديتابيس ركوردها به صورت زير ذخيره شده اند: ▪️ركورد١: عليرضا ▪️ركورد٢: علي رضا با…»
🛃 آزمون
جهت محقق كردن نيازمندي دسترس پذيري بالا در ديتابيس مونگو، از كدام قابليت مي بايست استفاده نمود؟
Anonymous Quiz
46%
Replica Set
54%
Sharding
0%
هيچكدام
Elasticsearch

🔹 پس از نصب الستيك سرچ، دايركتوري هايي در مسير نصب ايجاد مي شوند، كه بايد از محتويات آن ها به جهت پيكربندي، اشكال زدايي، نگهداشت و … آگاه بود.
👇
Elasticsearch

🔹فايل elasticsearch.yml:
اين فايل در دايركتوري /config قرار دارد.

🔹به جهت پيكربندي و انجام تنظيمات مورد نياز بر روي يك نود الستيك سرچ مورد استفاده قرار مي گيرد.
👇
MongoDB

🔹با استفاده از دو ابزار mongodump و mongoexport مي توان از ديتابيس مونگو بك آپ تهيه نمود.

🔹ابزار mongodump:
بك آپ را به صورت باينري فايل ايجاد مي نمايد.

🔹ابزار mongoexport:
بك آپ را به صورت json يا csv ايجاد مي نمايد.
Elasticsearch: N-gram


🔹مفهوم N-gram در الستيك سرچ به مدل ايندكس كردن يك واژه با شكست آن به كاراكتر هاي تشكيل دهنده اشاره دارد.

🔹براي نمونه، براي ايندكس كردن هر دو كاراكتر كنار هم بايد gram-2 استفاده شود و به همين ترتيب …

🔹 در انتخاب تعداد gram ها بايد دقت نمود، به دليل اينكه در رشد نمايي داده ها ، ميزان محاسبات و استفاده از منابع تاثير مستقيم دارد.

🔹 از جمله كاربردهاي استفاده از آن، در بهينه سازي مدل هاي جستجو مبتني بر suggestion مي باشد.

🔹مانند جستجو در سايت booking براي جستجوي هتل، شهر و … كه با وارد كردن تعدادي كاراكتر توسط كاربر، سيستم واژه هايي را به كاربر پيشنهاد مي دهد.

🔹همچنين در جستجو بهتر در زبان هايي مانند آلماني، كه يك واژه از تركيب چندين لغت تشكيل شده است.
👇
MongoDB: Aggregation Stages

🔹دستور unwind:از اين دستور جهت فلت كردن يك آرايه درون يك داكيومنت استفاده مي شود

🔹فرم Prototype آن به صورت زیر می باشد

{ $unwind: { path: <field path> , includeArrayIndex:<string>} })

مقدار path بيانگر نام فيلد حاوي آرايه مي باشد و مقدار includeArrayIndex نام فيلد جديد بعد از عمليات unwind مي باشد.

👇
مثال:
🔹داكيومنت موجود در كالكشن inventory به صورت زير مي باشد:

db.inventory.insertOne({ "_id" : 1, "item" : "ABC1", sizes: [ "S", "M", "L"] })

دستور unwind را بر روي آن اجرا مي كنيم:

db.inventory.aggregate( [ { $unwind : "$sizes" } ] )


خروجي آن به صورت زير مي باشد:
👇
MongoDB: Full Text Search

🔹دیتابیس مونگو دارای قابلیت Full Text Search می باشد.

🔹با استفاده از تعریف ایندکس با وِیژگی Full Text Search، قابليت های مبتنی بر جستجو در متن به صورت بهینه با پشتیبانی از وِیژگی هایی نظیر tokenization, stop words, stemming فراهم می شود.
MongoDB
🔹بهبود عملكرد ديتابيس مونگو در جديدترين نسخه ارائه شده يعني نسخه 8 👌

🔹٣٦درصد بهبود عملكرد در نرخ خواندن ديتا

🔹٥٦ درصد بهبود عملكرد در نوشتن انبوه

🔹٢٠ درصد بهبود عملكرد در همزماني نوشتن در فرايند رپليكيشن
و …
آموزش ديتابيس مونگو و الستيك سرچ- MongoDB & Elasticsearch tutorial
MongoDB 🔹بهبود عملكرد ديتابيس مونگو در جديدترين نسخه ارائه شده يعني نسخه 8 👌 🔹٣٦درصد بهبود عملكرد در نرخ خواندن ديتا 🔹٥٦ درصد بهبود عملكرد در نوشتن انبوه 🔹٢٠ درصد بهبود عملكرد در همزماني نوشتن در فرايند رپليكيشن و …
MongoDB
🔹نكات مهم در مورد Upgrade نسخه های دیتابیس مونگو:

🔹در برورزسانی نسخه های دیتابیس مونگو از ورژن پایینتر به آخرین نسخه، نميتوان مستقیما از نسخه جاری به نسخه آخر ارتقا را انجام داد. ( برای مثال از نسخه 4.2 به نسخه 8.0)

🔹این فرآیند بر اساس الگوی Semantic Versioning باید به صورت نسخه به نسخه ابتدا با تغییر Minor ها به Minor نسخه بالاتر و Major ها به Major نسخه بالاتر انجام شود.

🔹تمامی Dependency ها نیز باید قبل از هر ارتقا به عنوان یک repository جمع آوری شده باشد.

🔹 نیازمندي دیده شدن تمام جوانب و ریسک ها قبل از upgrade بسيار اهميت دارد. حتما قبل از هر تغییر از دیتابیس فایل پشتیبان تهیه نمایید.
MongoDB: Mongo Sync

🔹از ابزار Mongo Sync جهت انتقال داده ها و تغییرات از یک کلاستر مبدا به یک کلاستر مقصد دیتابیس مونگو استفاده می شود.

🔹با کمک این ابزار، همگام سازی می تواند بر روی دیتابیس ها و یا کالکشن های مورد نیاز انجام شود.

🔹تغییرات به صورت لحظه ای و Inremental بین دو کلاستر منتقل می شود.

🔹از دیگر سناریوهای مورد استفاده می توان به همگام سازی داده های محیط های مختلف نظیر محیط عملیات Production با محیط Development در صورت عدم وجود نگرانی های مربوط به موارد امنیت داده ها و منابع و ... و همچنین Migration داده ها بین محیط های مختلف، تجمیع داده ها از مبدا های متفاوت و ... اشاره نمود.
👇