تصویر شیرین عبدالهی
جست و جو توسط Apache solr در دروپال

همانطور که می‌دانید جستوجوی داخلی دروپال معایب زیادی دارد و برای استفاده‌ی حرفه‌ای مناسب نیست. برای وبسایت‌هایی که می‌خواهید در آنها جست و جوی قویتر و پیچیده‌تری داشته باشید بایستی از ماژول‌های دروپال استفاده نمایید.

برای این کار ماژول‌های  Search api solr search و Search api  را پیشنهاد می‌کنم که جست و جویی بر اساس موتور جست و جوی قدرتمند Apache solr فراهم می نماید.

قبل از فعال کردن این ماژول ها بایستی Apache solr را نصب کنید. اگر از لینوکس استفاده می کنید توسط چند دستور می توانید این سرویس را نصب کنید. در ویندوز هم توسط نصب‌گر BitNami می‌توانید کار نصب را انجام دهید.

پس از آن بایستی با توجه به ورژن Apache solr ای که نصب کرده‌ایم ، فایل‌های پیکربندی را از آدرس داخل ماژول Search api solr به درون فایل Solr انتقال دهیم:

آدرس فایل ها:

\modules\search_api_solr\solr-conf\4.x

اگر از BitNami  برای تصب استفاده کرده باشید فایل ها را به 

\apache-solr\solr\collection1\conf

انتقال دهید. می‌توانید با رفتن به http://localhost:8983/solr ورژن Apache solr را مشاهده نمایید. آدرس ذکر شده در ماژول ، برای ورژن 4 آپاچی سولر است.

پس از اینکه Apache solr نصب شد و فایل‌های پیکربندی به آن اضافه گردید، ماژول‌هایی گفته شده را فعال می‌کنیم. در صفحه‌ی پیکربندی Search api در آدرس admin/config/search/search_api می توانید یک سرور جدید اضافه کنید. در این صفحه  Service class را Solr service انتخاب کرده و مشخصات سرویس را به آن می‌دهیم. در حالت معمول بدین صورت است:

solr host : localhost

solr port : 8983

سپس فرم را ذخیره می‌کنیم. اگر تنظیمات درست وارد شده باشد با پیغام The Solr server could be reached مواجه می‌شویم.

حال کافیست index ای که به طور پیش فرض در پیکربندی ماژول Search api وجود دارد را فعال کنیم. برای این کار در قسمت ویرایش، تنظیمات را انتخاب کرده و در آنجا سرویس که در قدم قبلی ساخته‌ایم را انتخاب می کنیم. سپس به سربرگ status رفته و index را فعال می‌کنیم. این index به طور پیش‌فرض بر روی نودهای سایت عمل ایندکس کردن را انجام می‌دهد. می‌توانیم در سربرگ field فیلدهایی که index روی آنها انجام می‌شود را انتخاب نماییم. سپس در سربرگ status بر روی دکمه‌ی index کلیک می‌نماییم. اگر همه چیز درست پیش رفته باشد، نودهای درون سایت به طور کامل ایندکس می‌شوند. علاوه بر این index  می‌توانیم ایندکس‌های دیگری بر روی user ها و ... تعریف کنیم. در این مرحله سایت توسط آپاچی سولر جست و جو شده و اطلاعات ذخیره می شود.

حال با فعال کردن ماژول Search views از ماژول های Search api می‌توانیم از index هایی که در مرحله‌ی قبل ساخته‌ایم صفحه، بلاک و .. تعریف کنیم. و با اضافه کردن فیلتر  Search: Fulltext search در حالت exposed و انتخاب اینکه عمل جست و جو بر روی چه فیلدهایی از index انتخاب شده صورت گیرد ( در صفحه‌ی پیکربندی آن ) می توانیم جست و جوی کاملی بر اساس آپاچی سولر داشته باشیم.

دیدگاه‌ها

تصویر سجاد

سجاد (تایید نشده)

با سلام خدمت شما خانم عبدالهی
من خیلی سعی کردم کارهایی که آموزش دادید رو به ترتیب انجام بدم اما باز هم موقع فشردن دکمه index گذاری با این خطا مواجه میشم:

Couldn't index items. Check the logs for details.

اینم خطای لاگ دروپال:

SearchApiException while indexing: "400" Status: Bad Request: Bad Request{"responseHeader":{"status":400,"QTime":1},"error":{"msg":"ERROR: [doc=default_node_index-43] unknown field 'item_id'","code":400}} in SearchApiSolrConnection->checkResponse() (line 548 of C:\wamp\www\book\sites\all\modules\search_api_solr\includes\solr_connection.inc).

در ضمن اگر فایل هایی که در ماژول search_api_solr هستن را با فایل های کانفیگ داخل هسته سولر جایگزین کنم خطای 500 رو می بینم.
ورژن سولر=4.5.1
ورژن دروپال و ماژول :7.0
مثل اینکه در این لینک شما هم این مشکل رو داشتید چطور دقیقا رفعش کردید، ممنون میشم جوابم رو بدید شدیدا نیازمند این ماژول هستم.

http://stackoverflow.com/questions/18823324/drupal-could-not-index-site-using-apache-solr


ممنون از لطفتون

تصویر شیرین عبدالهی

شیرین عبدالهی

سلام

ممنون از توجه شما. مشکل من اگر درست به خاطر داشته باشم کانفیگ نشدن درست آپاچی سولر بود.

تصویر سجاد

سجاد (تایید نشده)

مرسی، مشکلم حل شد

تصویر سجاد دهقانی

سجاد دهقانی

با سلام ، من موقع فشردن دکمه index با این خطا مواجه میشم باید چیکار کنم دقیقا، ممنون میشم جوابم رو بدید:
خطای لاگ دروپال:

SearchApiException while indexing: "400" Status: Bad Request: Bad Request{"responseHeader":{"status":400,"QTime":1},"error":{"msg":"ERROR: [doc=default_node_index-43] unknown field 'item_id'","code":400}} in SearchApiSolrConnection->checkResponse() (line 548 of C:\wamp\www\book\sites\all\modules\search_api_solr\includes\solr_connection.inc).

خطای موقع index:
 

Couldn't index items. Check the logs for details.

 

افزودن نظر جدید