برنامه نویسی

فعال کردن MongoDB با Elasticsearch برای جستجوی متن کامل: یک راهنمای جامع

`# فعال کردن MongoDB با Elasticsearch برای جستجوی متن کامل: یک راهنمای جامع

ادغام کننده منگوله با غیرقانونی برنامه های کاربردی را با قابلیت های پیشرفته جستجوی متن کامل تقویت می کند و طرح انعطاف پذیر MongoDB را با ویژگی های قدرتمند نمایه سازی و پرس و جو Elasticsearch ترکیب می کند. این راهنما بر استفاده از آن متمرکز است اتصال دهنده برای همگام سازی داده ها بین MongoDB و Elasticsearch ، ارائه مراحل و بینش های مفصلی در مورد اجرای جنبه های جستجو با استفاده از تجمع Elasticsearch.


فهرست مطالب

  1. مقدمه
  2. چرا MongoDB را با Elasticsearch ادغام کنید؟
  3. نمای کلی از کانکتور مونگو
  4. پیش نیازهای
  5. راهنمای ادغام گام به گام

  6. اجرای جنبه های جستجو با تجمع Elasticsearch

  7. بهترین شیوه ها و بهینه سازی
  8. پایان
  9. منابع

مقدمه

با رشد برنامه ها در پیچیدگی و حجم داده ، بازیابی داده های کارآمد بسیار مهم می شود. در حالی که MongoDB انعطاف پذیری و مقیاس پذیری را به عنوان یک پایگاه داده NOSQL ارائه می دهد ، فاقد قابلیت جستجوی پیشرفته با متن کامل است. ادغام MongoDB با Elasticsearch ، نقاط قوت هر دو سیستم را ترکیب می کند و به توسعه دهندگان این امکان را می دهد تا داده ها را در MongoDB ذخیره کنند و Elasticsearch را برای عملکردهای قدرتمند جستجو استفاده کنند.

این راهنمای جامع مراحل مفصلی را برای همگام سازی MongoDB با Elasticsearch با استفاده از اتصال دهنده و نحوه اجرای جنبه های جستجو را با استفاده از تجمع Elasticsearch نشان می دهد.


چرا MongoDB را با Elasticsearch ادغام کنید؟

  • جستجوی پیشرفته کامل متن: Elasticsearch ویژگی های جستجوی متن کامل ، از جمله امتیاز دهی به اهمیت ، حاکمیت و نشانه گذاری را ارائه می دهد.
  • همگام سازی داده در زمان واقعی: حفظ شاخص های به روز در Elasticsearch با تغییر در MongoDB.
  • مقیاس پذیری: Elasticsearch برای رسیدگی به حجم زیادی از داده ها و نمایش داده های پیچیده به طور کارآمد طراحی شده است.
  • تجزیه و تحلیل پیشرفته: تجمع و تجزیه و تحلیل های پیچیده را در مورد داده های ذخیره شده در MongoDB انجام دهید.

نمای کلی از کانکتور مونگو

اتصال دهنده یک ابزار منبع باز است که توسط MongoDB ساخته شده است که داده های MongoDB را به سیستم های مختلف هدف ، از جمله Elasticsearch همگام می کند. این کار با تنظیم MongoDB Oplog (ورود به سیستم) از یک مجموعه ماکت ، ردیابی کلیه درج ، به روزرسانی و حذف عملیات در زمان واقعی کار می کند.

ویژگی های کلیدی

  • همگام سازی در زمان واقعی: شاخص های Elasticsearch را به روز با MongoDB نگه می دارد.
  • تنظیم آسان: به پیکربندی حداقل نیاز دارد.
  • انعطاف پذیری: از فیلتر کردن و تبدیل داده ها در طول همگام سازی پشتیبانی می کند.

پیش نیازهای

قبل از شروع ، اطمینان حاصل کنید که موارد زیر را دارید:

  • منگوله: نسخه 3.6 یا بالاتر ، به عنوان مجموعه ماکت پیکربندی شده است.
  • غیرقانونی: نسخه سازگار با مدیر DOC Elasticsearch Mongo Connector (Elasticsearch 7.x توصیه می شود).
  • پیتون: نسخه 3.6 یا بالاتر (برای اجرای کانکتور Mongo).
  • اتصال دهنده: آخرین نسخه سازگار با نسخه های MongoDB و Elasticsearch شما.

راهنمای ادغام گام به گام

1. مجموعه ماکت MongoDB را تنظیم کنید

اتصال Mongo به MongoDB نیاز دارد تا به عنوان یک مجموعه ماکت پیکربندی شود ، حتی اگر فقط یک گره داشته باشید.

الف MongoDB را با پیکربندی تنظیمات ماکت شروع کنید

bash
mongod --replSet rs0 --bind_ip localhost --dbpath /data/db

b. Initiate the Replica Set

Open a new terminal and connect to MongoDB shell:

bash
mongo --eval 'rs.initiate()'

Verify that the replica set is running:

bash
mongo --eval 'rs.status()'

2. Install Mongo Connector and Elasticsearch Doc Manager

a. Install Mongo Connector

Use pip برای نصب کانکتور Mongo:

bash
pip install mongo-connector

b. Install Elasticsearch Doc Manager

For Elasticsearch 7.x, install the compatible Doc Manager:

bash
pip install 'mongo-connector[elastic7]'

3. Configure Mongo Connector

Create a configuration file (e.g., mongo-connector-config.json) با محتوای زیر:

json
{
"mainAddress": "localhost:27017",
"oplogFile": "oplog.timestamp",
"noDump": false,
"stdout": true,
"verbosity": 2,
"continueOnError": true,
"logging": {
"type": "file",
"filename": "mongo-connector.log"
},
"namespaces": {
"include": ["mydatabase.products"]},
"docManagers": [
{
"docManager": "elastic_doc_manager",
"targetURL": "localhost:9200",
"autoCommitInterval": 0
}
]}

  • mainAddress: آدرس تنظیم ماکت MongoDB.
  • namespaces.include: لیست فضای نام MongoDB (پایگاه داده ها و مجموعه ها) شامل.

4. کانکتور مونگو را اجرا کنید

دستور زیر را برای شروع همگام سازی اجرا کنید:

bash
mongo-connector -c mongo-connector-config.json

  • Logs: Monitor mongo-connector.log برای هر مسئله ای
  • همگام سازی اولیه: Mongo Connector قبل از شروع به دم کردن Oplog ، یک زباله داده اولیه را انجام می دهد.

اجرای جنبه های جستجو با تجمع Elasticsearch

جستجوی FaceTed به کاربران امکان می دهد تا با استفاده از چندین فیلتر بر اساس داده های طبقه بندی شده ، نتایج جستجو را اصلاح کنند. Elasticsearch از طریق چارچوب قدرتمند جمع آوری خود از جستجوی صورت گرفته می شود.

1. درک جستجوی صورت

جستجوی صورت امکان پذیر است:

  • تصفیه: کاهش نتایج بر اساس ویژگی ها (به عنوان مثال ، دسته ، برند).
  • شمارش: نمایش تعداد اسناد مطابق با هر جنبه.

2. ایجاد نقشه های شاخص

نقشه های صریح را برای بهینه سازی جستجو و تجمع تعریف کنید.

الف با نگاشت ها فهرست ایجاد کنید

از PUT درخواست ایجاد یک فهرست با نگاشتهای سفارشی:

bash
PUT /products
{
"mappings": {
"properties": {
"name": { "type": "text" },
"description": { "type": "text" },
"category": { "type": "keyword" },
"price": { "type": "float" },
"brand": { "type": "keyword" },
"tags": { "type": "keyword" }
}
}
}

3. Performing Aggregations

Elasticsearch’s aggregation framework enables faceted navigation by computing counts on specific fields.

a. Sample Aggregation Query

json
GET /products/_search
{
"size": 0,
"aggs": {
"categories": {
"terms": { "field": "category" }
},
"brands": {
"terms": { "field": "brand" }
},
"price_ranges": {
"range": {
"field": "price",
"ranges": [
{ "to": 50 },
{ "from": 50, "to": 100 },
{ "from": 100 }
]}
}
}
}

  • size: 0: ما فقط به نتایج جمع آوری علاقه مندیم.
  • terms: تعداد اسناد را در هر مقدار منحصر به فرد شمارش می کند.
  • range: اسناد را بر اساس دامنه های عددی طبقه بندی می کند.

4 نمایش داده شد

الف جستجوی صورت با فیلترها

json
GET /products/_search
{
"query": {
"bool": {
"must": [
{ "match": { "description": "wireless headphones" } }
],
"filter": [
{ "term": { "category": "Electronics" } },
{ "term": { "brand": "BrandA" } },
{ "range": { "price": { "gte": 50, "lte": 200 } } }
]}
},
"aggs": {
"categories": {
"terms": { "field": "category" }
},
"brands": {
"terms": { "field": "brand" }
}
}
}

b. Parsing Aggregation Results

The response will include aggregation buckets:

  • categories.buckets: لیست دسته ها با تعداد اسناد.
  • brands.buckets: لیست مارک های دارای تعداد اسناد.

بهترین شیوه ها و بهینه سازی

  • فهرست بندی فله: از عملیات فله در کانکتور Mongo برای کارآیی استفاده کنید.
  • فاصله تازه سازی فهرست: تنظیم Elasticsearch’s refresh_interval برای نمایه سازی بهتر عملکرد در هنگام واردات فله.
  • انواع داده های میدانی: از انواع صحیح داده ها در نگاشتها اطمینان حاصل کنید تا از مشکلات در طول تجمع جلوگیری شود.
  • زمینه های غیر ضروری را حذف کنید: کانکتور Mongo را اصلاح کنید تا زمینه هایی را که در Elasticsearch لازم نیست ، حذف کنید.
  • نظارت: به طور منظم گزارش های هماهنگ سازی و سلامت خوشه Elasticsearch را کنترل کنید.

پایان

ادغام MongoDB با Elasticsearch با استفاده از Mongo Connector یک راه حل قوی برای برنامه هایی که نیاز به قابلیت های جستجوی پیشرفته دارند ارائه می دهد. با دنبال کردن مراحل ذکر شده در این راهنما ، می توانید هماهنگ سازی در زمان واقعی بین MongoDB و Elasticsearch را انجام داده و جنبه های جستجوی قدرتمند را با استفاده از چارچوب جمع آوری Elasticsearch پیاده سازی کنید.

این ادغام نه تنها عملکرد جستجو را افزایش می دهد بلکه با ارائه نتایج جستجوی سریع و مرتبط ، تجربه کلی کاربر را بهبود می بخشد.


منابع


نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا