كيفية إعداد البحث النصي الكامل في Nextcloud باستخدام Elasticsearch 8

لا يزال تكامل Nextcloud مع Elasticsearch فعالاً في عام 2026، ولكن هناك تفصيلاً هاماً يتعلق بالتوافق يجب التحقق منه قبل البدء: يدعم تطبيق البحث النصي الكامل - منصة Elasticsearch الحالي Elasticsearch 8، وليس Elasticsearch 9. ويشير المستودع الرسمي للمشروع إلى أن الإصدارات 26.0.0 والإصدارات الأحدث متوافقة فقط مع Elasticsearch 8. بالإضافة إلى ذلك، يتوفر الآن إصدار متوافق من منصة Elasticsearch لـ Nextcloud 35، وهو الإصدار 35.0.0، والذي نُشر في 18 سبتمبر 2026. إذا كنت تُحدّث خادمًا موجودًا، فتحقق من إصدار التطبيق الذي يتوافق مع إصدار Nextcloud الرئيسي لديك قبل إجراء أي تعديل على فهرس البحث.

يُقدّم هذا الدليل إعدادًا عمليًا لفهرسة محتوى الملفات في Nextcloud باستخدام Elasticsearch 8. ويركّز على مجموعة التطبيقات الثلاثة القياسية: إطار عمل البحث النصي الكامل، وموصل منصة Elasticsearch، وموفر الملفات. تستخدم الأوامر occواجهة سطر أوامر Nextcloud لأنها أسهل في التحقق من صحتها وأتمتتها من الاعتماد على واجهة الويب فقط.

المراجع الرسمية: تطبيق البحث النصي الكامل لمنصة Nextcloud - Elasticsearch Platform ، ومستودع منصة Nextcloud Elasticsearch ، وإطار عمل البحث النصي الكامل لـ Nextcloud ، وموفر البحث النصي الكامل لملفات Nextcloud ، ودليل تثبيت Docker أحادي العقدة من Elastic .

ما تحتويه حزمة البحث النصي الكامل في Nextcloud فعليًا

لا يُعدّ البحث النصي الكامل في Nextcloud تطبيقًا واحدًا. يوفر تطبيق البحث النصي الكامل الأساسي الإطار اللازم. يربط تطبيق المنصة هذا الإطار بمحرك البحث، ويقوم تطبيق أو أكثر من تطبيقات المزوّد باستخراج المحتوى القابل للبحث. بالنسبة لمحتوى الملفات، يكون المزوّد هو "البحث النصي الكامل - الملفات". يقوم Elasticsearch بتخزين الفهرس الناتج والإجابة على الاستعلامات.

  • البحث في النص الكامل: الإطار الأساسي وطبقة تنسيق البحث.
  • البحث في النص الكامل - منصة Elasticsearch: الموصل الذي يرسل المستندات والاستعلامات إلى Elasticsearch.
  • البحث في النص الكامل - الملفات: الموفر الذي يعرض ملفات المستخدمين للإطار لأغراض الفهرسة.
  • Elasticsearch 8: محرك البحث الخارجي الذي يخزن الفهرس.

يُعدّ الفصل بين المكونات أمرًا بالغ الأهمية عند استكشاف الأخطاء وإصلاحها. فوجود نقطة نهاية HTTP فعّالة في Elasticsearch لا يُثبت قدرة Nextcloud على استخراج محتوى الملفات، كما أن تفعيل موفر الملفات لا يُثبت قدرة موصل النظام الأساسي على الوصول إلى Elasticsearch. fulltextsearch:testيُعدّ الأمر المدمج مفيدًا لأنه يتحقق من السلسلة المُكوّنة بدلًا من التحقق من مكون واحد فقط.

قبل أن تبدأ

تحتاج إلى صلاحيات المسؤول في Nextcloud، وصلاحيات الوصول إلى سطر الأوامر للخادم أو الحاوية التي تُشغّل Nextcloud، ونسخة من Elasticsearch 8 يمكن الوصول إليها من تلك البيئة. تفترض الأمثلة أدناه وجود خادم Linux وتستخدم Docker لـ Elasticsearch لأنه يحافظ على عزل خدمة البحث. إذا كنت تُشغّل بالفعل مجموعة Elasticsearch 8 مُدارة أو مُخصصة، فاستخدم نقطة نهاية HTTPS الموجودة فيها.

في بيئة الإنتاج، تجنب تعريض المنفذ 9200 مباشرةً للإنترنت العام. توصي وثائق Docker الحالية من Elastic بربط منفذ HTTP بواجهة مُتحكَّم بها مع الحفاظ على ميزات الأمان. كما تُوثِّق Elastic متطلبات الاستضافة، مثل vm.max_map_countمتطلبات نشر Docker في بيئة الإنتاج. تعامل مع أي أمر أحادي العقدة مُعطَّل الأمان كاختصار تجريبي محلي، وليس كقالب للإنتاج.

الخطوة 1: تثبيت تطبيقات Nextcloud الثلاثة المطلوبة

من صفحة تطبيقات Nextcloud، قم بتثبيت وتفعيل البحث في النص الكامل ، والبحث في النص الكامل - منصة Elasticsearch ، والبحث في النص الكامل - الملفات . يمكنك أيضًا تثبيتها باستخدام الأمر التالي occ، وهو غالبًا ما يكون أسهل على الخوادم التي لا تحتوي على واجهة رسومية.

sudo -u www-data php /var/www/nextcloud/occ app:install fulltextsearch
sudo -u www-data php /var/www/nextcloud/occ app:install fulltextsearch_elasticsearch
sudo -u www-data php /var/www/nextcloud/occ app:install files_fulltextsearch

إذا كانت ملفات Nextcloud موجودة في مكان آخر، فعدّل المسار إلى occ. في صورة Docker الرسمية لـ Nextcloud، يكون المسار عادةً /var/www/html/occ. بعد التثبيت، استخدم occ app:listللتأكد من ظهور التطبيقات الثلاثة جميعها ضمن "مُفعّل".

صفحة تطبيقات Nextcloud تعرض البحث في النص الكامل، والبحث في النص الكامل - منصة Elasticsearch، والبحث في النص الكامل - الملفات مُفعّلة

التعليق: صفحة تطبيقات Nextcloud مع تمكين إطار العمل الأساسي للبحث النصي الكامل، وموصل منصة Elasticsearch، وموفر الملفات.

الخطوة الثانية: ابدأ تشغيل Elasticsearch 8 وتأكد من أن Nextcloud يمكنه الوصول إليه

يتطلب موصل Elasticsearch الإصدار 8 من Elasticsearch منذ إصدار تطبيق Nextcloud 26.0.0. لا تستخدم الإصدار 9 من Elasticsearch إلا إذا تغيرت بيانات التوافق الرسمية لإصدار التطبيق الذي تستخدمه.

بالنسبة للمختبرات المحلية، توثق Elastic استخدام Docker أحادي العقدة. يمكن تشغيل نسخة اختبارية مصغرة على واجهة خاصة. أما في بيئة الإنتاج، فيُرجى إبقاء المصادقة وTLS مُفعّلين، واتباع إرشادات التثبيت الحالية من Elastic بدلاً من تعطيل الأمان.

docker run --name es01   --net elastic   -p 127.0.0.1:9200:9200   -it -m 6GB   docker.elastic.co/elasticsearch/elasticsearch:<ELASTICSEARCH_8_VERSION>

يقوم بدء التشغيل الآمن الافتراضي لـ Elastic بطباعة كلمة مرور المستخدم المدمج elasticوإنشاء شهادات HTTP TLS. يمكنك بعد ذلك التحقق من العقدة باستخدام شهادة المرجع المصدق وبيانات الاعتماد كما هو موضح في الدليل الرسمي. إذا كان Nextcloud موجودًا في حاوية Docker أخرى، فتذكر أن هذا 127.0.0.1يشير إلى حاوية Nextcloud نفسها، وليس حاوية Elasticsearch. ضع كلا الخدمتين على شبكة Docker مشتركة واستخدم اسم خدمة Elasticsearch، مثل `@Excel` https://elasticsearch:9200، أو قم بالتوجيه عبر عنوان خاص.

طرفية لينكس تعرض حاوية Elasticsearch أحادية العقدة وهي تبدأ وتستمع على المنفذ 9200

التعليق: عرض طرفي لخدمة Elasticsearch أحادية العقدة يتم تشغيلها والتحقق منها؛ بالنسبة للإنتاج، احتفظ بالمصادقة وTLS ممكّنين بدلاً من استخدام تكوين مختبر غير آمن.

الخطوة 3: تهيئة Nextcloud لاستخدام Elasticsearch

يمكنك تهيئة المنصة من خلال واجهة الإدارة، لكن نموذج سطر الأوامر دقيق وقابل للتكرار. يقوم تكامل Nextcloud الشامل بتهيئة الإطار عن طريق تحديد فئة منصة Elasticsearch، ثم يمرر اسم مضيف Elasticsearch واسم الفهرس إلى الموصل.

sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:configure '{"search_platform":"OCA\\FullTextSearch_Elasticsearch\\Platform\\ElasticSearchPlatform"}'

sudo -u www-data php /var/www/nextcloud/occ fulltextsearch_elasticsearch:configure '{"elastic_host":"https://elastic:YOUR_PASSWORD@elasticsearch:9200","elastic_index":"nextcloud_index"}'

استخدم عنوان URL للمضيف يمكن الوصول إليه من عملية PHP الخاصة بـ Nextcloud. إذا كانت نقطة نهاية Elasticsearch تستخدم مرجع مصدق خاصًا، فتأكد من أن بيئة Nextcloud تثق بهذا المرجع المصدق بدلاً من تعطيل التحقق من الشهادة. تجنب وضع بيانات الاعتماد في سجل الأوامر على الأنظمة المشتركة؛ استخدم طريقة تكوين محمية مناسبة لبيئة النشر الخاصة بك.

nextcloud_indexيجب أن يكون اسم الفهرس بأحرف صغيرة ومخصصًا لمثيل Nextcloud هذا. يسهل التعرف على اسم مثل هذا . إذا كانت عدة مثيلات Nextcloud تشترك في مجموعة Elasticsearch واحدة، فامنح كل مثيل اسم فهرس فريدًا.

شاشة إدارة البحث النصي الكامل في Nextcloud مع تحديد Elasticsearch، وعنوان Elasticsearch، واسم فهرس nextcloud_index

التعليق: شاشة إدارة البحث النصي الكامل مع تحديد Elasticsearch كمنصة بحث وتكوين اسم فهرس مخصص.

الخطوة الرابعة: اختيار محتوى الملف الذي يجب فهرسته

يتحكم موفر الملفات في فئات محتوى الملفات التي يتم إرسالها للفهرسة. تتيح عملية التهيئة الشاملة في Nextcloud حاليًا استخراج ملفات PDF ومستندات Office باستخدام هذا الأمر:

sudo -u www-data php /var/www/nextcloud/occ files_fulltextsearch:configure '{"files_pdf":true,"files_office":true}'

قد تختلف خيارات مزود الخدمة المتاحة لديك باختلاف إصدار التطبيق، لذا تحقق من الإعدادات الحالية قبل نسخها من دليل سابق. تذكر أيضًا أن جودة استخراج النصوص تعتمد على الملف الأصلي. فملف PDF عادي يحتوي على نص مضمن أسهل بكثير في الفهرسة من ملف PDF ممسوح ضوئيًا يحتوي على صورة فقط. البحث في النص الكامل لا يجعل التعرف الضوئي على الأحرف (OCR) الضعيف دقيقًا تلقائيًا.

الخطوة 5: اختبار إعدادات البحث الكاملة

قبل فهرسة مكتبة كبيرة، قم بتشغيل اختبار الإطار:

sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:test

يجب أن يُظهر الاختبار الناجح إمكانية الوصول إلى المنصة وأنّ تركيبة المزوّد/المنصة المُهيّأة تعمل بكفاءة. في حال فشل الاختبار، يجب إصلاح الاتصال قبل بدء عملية الفهرسة الأولية. تشمل الأسباب الشائعة استخدام localhostحاوية خاطئة، ومشاكل في موثوقية الشهادة، وفشل المصادقة، وإصدار رئيسي غير متوافق مع Elasticsearch، أو تهيئة فهرسة يرفضها Elasticsearch.

الخطوة 6: بناء الفهرس الأولي

بمجرد اجتياز الاختبار، قم بإنشاء الفهرس الأولي:

sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index

على خادم كبير، قد تستغرق هذه العملية وقتًا وتستهلك موارد المعالج والذاكرة وعمليات الإدخال/الإخراج للتخزين وذاكرة Elasticsearch. شغّل عملية الزحف الأولى خلال فترة انخفاض حركة البيانات، وراقب سجلات كل من Nextcloud وElasticsearch. يدعم الإطار أيضًا نموذج إعادة ضبط الأخطاء الذي يستخدمه Nextcloud All-in-One أثناء الإعداد الأولي.

sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index '{"errors":"reset"}' --no-readline

لا تقم بإعادة ضبط وإعادة بناء فهرس سليم بشكل متكرر دون سبب. عند الترقية، اقرأ أولاً ملاحظات الإصدار لتطبيقات البحث الثلاثة وتحقق مما إذا كانت إعادة الفهرسة مطلوبة بالفعل.

الخطوة 7: حافظ على تحديث الفهرس

الفهرس الأولي ليس سوى لقطة. تتطلب عمليات التحميل والتعديل الجديدة فهرسة مستمرة. يتضمن إطار عمل البحث النصي الكامل fulltextsearch:liveأمرًا للمعالجة المستمرة. إذا كنت تستخدمه، فقم بتشغيله ضمن مشرف عمليات أو مدير خدمات آخر بحيث يُعاد تشغيله بعد الأعطال أو إعادة تشغيل المضيف.

sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:live

لا تقم بتشغيل عملية غير مُدارة في جلسة SSH وتفترض استمرار الفهرسة بعد تسجيل الخروج. يمكن تشغيل عامل التشغيل المباشر في بيئات الحاويات كعملية مُراقبة مُخصصة؛ بينما يمكن للخوادم التقليدية استخدام systemd أو مُشرف. راقبه كأي خدمة أخرى تعمل في الخلفية.

الخطوة 8: تحقق من البحث من كل من واجهة سطر الأوامر وواجهة Nextcloud

بعد اكتمال عملية الزحف الأولية، ابحث عن عبارة تظهر داخل مستند معروف، وليس فقط في اسم الملف. هذا يؤكد أن استخراج المحتوى وفهرسته يعملان بشكل صحيح. تدعم الإصدارات الحديثة من البحث النصي الكامل أيضًا البحث من خلال [اسم الملف] occ، وهو أمر مفيد عند فصل مشكلة فهرسة النظام عن مشكلة المتصفح أو البحث الموحد.

في واجهة الويب، استخدم حقل البحث في Nextcloud وابحث عن عبارة مميزة في ملف PDF أو DOCX أو ملف نصي تعرف أنه تمت فهرسته. إذا نجحت عمليات البحث عن اسم الملف ولكن لم تنجح عمليات البحث عن محتوى المستند، فراجع إعدادات موفر الملفات ونوع المستند المصدر.

يعرض الطرفية أوامر اختبار البحث النصي الكامل والفهرسة الناجحة أعلى لوحة بحث Nextcloud التي تعرض المستندات المطابقة

التعليق: اختبار إطار عمل ناجح وفهرس أولي متبوعًا بعملية بحث في Nextcloud تُرجع المستندات المفهرسة.

استكشاف الأخطاء وإصلاحها في حالات الأعطال الشائعة

يعمل Elasticsearch مع curl، لكن Nextcloud لا يستطيع الاتصال.

اختبر من نفس نطاق الشبكة الذي يعمل عليه Nextcloud PHP. في Docker، لا يُثبت نجاح الطلب من المضيف قدرة حاوية Nextcloud على الوصول إلى خدمة Elasticsearch. تحقق من نظام أسماء النطاقات (DNS)، وشبكات الحاويات، وقواعد جدار الحماية، وثقة بروتوكول TLS، والبروتوكول المُستخدم في عنوان URL المُكوّن.

يُبلغ الموصل عن مشكلة في إصدار Elasticsearch

تحقق من الإصدار الرئيسي الفعلي لـ Elasticsearch، وليس فقط من وسم الصورة الذي تنوي نشره. لا يزال مستودع الموصلات الرسمي الحالي يُشير إلى توافق Elasticsearch 8 مع إصدار التطبيق 26.0.0 والإصدارات الأحدث. في وقت كتابة هذا التقرير، يوجد طلب مفتوح من المطورين لدعم Elasticsearch 9، لذا لا ينبغي افتراض توافق Elasticsearch 9.

تستهلك عملية الفهرسة الكثير من الذاكرة

راقب ذاكرة Elasticsearch، وحدود ذاكرة الحاوية، وذاكرة المضيف معًا. تشير وثائق إنتاج Docker الخاصة بـ Elastic أيضًا إلى إعدادات على مستوى المضيف vm.max_map_count. إذا تم إيقاف JVM، فإن زيادة حد ذاكرة Nextcloud PHP فقط لن يحل مشكلة Elasticsearch.

بعض الملفات المشتركة أو الخارجية مفقودة

قد يختلف سلوك البحث باختلاف دعم مزود الخدمة وإصدار التطبيق. يواصل مشروع مزود خدمة الملفات تتبع المشكلات المتعلقة بالمجلدات المشتركة، ومجلدات المجموعات، ووحدات التخزين الخارجية. إذا كان أحد أنواع التخزين يتصرف بشكل مختلف عن الملفات المحلية العادية، فيُرجى إعادة إنتاج المشكلة باستخدام مثال صغير مُتحكم به، والتحقق من نظام تتبع المشكلات الرسمي لمزود الخدمة قبل إعادة بناء الفهرس بالكامل.

كيفية معرفة اكتمال الإعداد

تتضمن عملية النشر السليمة أربع علامات واضحة: إمكانية الوصول إلى Elasticsearch 8 من Nextcloud، fulltextsearch:testونجاح العملية، وإتمام الاختبار الأولي fulltextsearch:indexدون أخطاء عالقة، وإمكانية استرجاع الملف عند البحث عن نص داخل مستند معروف للمستخدم المُصرَّح له. حافظ على خصوصية نقطة نهاية الفهرس، وحافظ على أمان Elasticsearch في بيئة الإنتاج، وقم بترقية تطبيقات البحث الثلاثة في Nextcloud بما يتوافق مع الإصدار الرئيسي لـ Nextcloud.

للحصول على تفاصيل حساسة للإصدار، استخدم قائمة إصدارات منصة Nextcloud Elasticsearch الرسمية ودليل Docker الرسمي الخاص بالإنتاج في Elastic . تُعد هذه المصادر المصدر الأمثل للتأكد من التوافق ومتطلبات الاستضافة قبل إجراء ترقية رئيسية.

اترك تعليقاً

حل مشكلة ارتفاع استهلاك وحدة المعالجة المركزية في تطبيق Jitsi Meet على متصفحات المستخدمين

حل مشكلة ارتفاع استهلاك وحدة المعالجة المركزية في تطبيق Jitsi Meet على متصفحات المستخدمين

قم بتشخيص ارتفاعات وحدة المعالجة المركزية في متصفح Jitsi Meet وقلل من حمل العميل عن طريق فحص مربعات الفيديو وتأثيرات الكاميرا ورسومات المتصفح وإعدادات المضيف.

كيفية مراقبة مقاييس Jitsi Videobridge باستخدام Prometheus و Grafana

كيفية مراقبة مقاييس Jitsi Videobridge باستخدام Prometheus و Grafana

تتبع حالة Jitsi Videobridge، وحمل المؤتمرات، وحركة المرور باستخدام نقطة نهاية Prometheus المدمجة، ثم استكشف البيانات وارسمها بيانيًا في Grafana.

كيفية إعداد اسم نطاق مخصص لـ Jitsi Meet Docker

كيفية إعداد اسم نطاق مخصص لـ Jitsi Meet Docker

قم بتكوين نطاق مخصص لـ Jitsi Meet Docker باستخدام DNS و PUBLIC_URL و HTTPS و Let's Encrypt ومنافذ جدار الحماية وإعدادات NAT والتحقق من طرف إلى طرف.

حل مشكلة عدم العثور على لوحة تحكم Zimbra الإدارية (404) بعد تجديد شهادة SSL

حل مشكلة عدم العثور على لوحة تحكم Zimbra الإدارية (404) بعد تجديد شهادة SSL

قم بإصلاح أخطاء 404 في وحدة تحكم إدارة Zimbra بعد تجديد شهادة SSL عن طريق التحقق من عنوان URL والمنفذ الصحيحين، وتوجيه الوكيل، وحالة الخدمة، والشهادات المنشورة، والسجلات.

إصلاح تحذير Nextcloud "لم يتم تكوين PHP OPcache بشكل صحيح"

إصلاح تحذير Nextcloud "لم يتم تكوين PHP OPcache بشكل صحيح"

تعرف على كيفية تشخيص وإصلاح تحذير تكوين PHP OPcache الخاص بـ Nextcloud عن طريق التحقق من إعدادات PHP SAPI النشطة، وحدود الحجم، والتعليقات، وإعادة التحقق.

إصلاح أخطاء ترحيل قاعدة بيانات Kopano بعد ترقية إصدار MySQL

إصلاح أخطاء ترحيل قاعدة بيانات Kopano بعد ترقية إصدار MySQL

قم باستكشاف أخطاء ترحيل قاعدة بيانات Kopano وإصلاحها بعد ترقية MySQL أو MariaDB عن طريق التحقق من النسخ الاحتياطية، وإصدارات الخادم، وأوضاع SQL، ومجموعة الأحرف، وحالة المخطط، والسجلات.

كيفية إعداد مصادقة LDAP و Active Directory في Nextcloud

كيفية إعداد مصادقة LDAP و Active Directory في Nextcloud

قم بتوصيل Nextcloud بـ LDAP أو Active Directory باستخدام النقل الآمن، وفلاتر المستخدم والمجموعة، وسمات تسجيل الدخول، وعملية نشر تم اختبارها.

إصلاح إشعارات Element لنظام Android بدون خدمات Google: دليل UnifiedPush

إصلاح إشعارات Element لنظام Android بدون خدمات Google: دليل UnifiedPush

إصلاح إشعارات Element Android على الهواتف التي تم إلغاء خدمة Google منها عن طريق تكوين UnifiedPush، وأذونات Android، وإعدادات البطارية، واختبارات التحقق الموثوقة.

إصلاح تحذير Nextcloud "قاعدة البيانات تفتقد بعض الفهارس"

إصلاح تحذير Nextcloud "قاعدة البيانات تفتقد بعض الفهارس"

قم بإزالة تحذير فهارس قاعدة البيانات المفقودة في Nextcloud باستخدام أمر occ الرسمي. قم بعمل نسخة احتياطية أولاً، ثم استعرض التغييرات، وقم بتشغيل عملية الإصلاح، وتحقق من النتيجة.

كيفية إعداد تسجيل الدخول الموحد (SSO) باستخدام Keycloak في Element Web

كيفية إعداد تسجيل الدخول الموحد (SSO) باستخدام Keycloak في Element Web

قم بتكوين Keycloak SSO لـ Element Web عن طريق ربط OIDC بـ Synapse، وتعيين عنوان URL لإعادة الاتصال بدقة، وتعيين مطالبات المستخدم، واختبار تسجيل الخروج.