كيفية تكوين شبكة GroupDocs Search للـ Java
في بيئة الرقمية سريعة الحركة اليوم، تُعد مهارات configure groupdocs search network أساسية لأي منظمة تحتاج إلى البحث عبر ملايين المستندات بسرعة وموثوقية. تقوم شبكة البحث المُكوَّنة جيدًا بتوزيع عبء الفهرسة والاستعلام عبر عدة عقد JVM، وتُحافظ على انخفاض أوقات الاستجابة، وتضمن توفرًا عاليًا. يشرح هذا الدليل كل خطوة — من إعداد Maven وتفعيل الترخيص إلى نشر العقد، الاشتراك في الأحداث، فهرسة المستندات، وحتى البحث القائم على الصور — لتتمكن من بناء شبكة GroupDocs.Search جاهزة للإنتاج في Java.
إجابات سريعة
- ما هو الهدف الأساسي من شبكة البحث؟ لتوزيع عبء الفهرسة والاستعلام عبر عدة عقد للحصول على قابلية توسع وموثوقية أفضل.
- ما هو المنفذ الذي يستخدمه GroupDocs.Search افتراضيًا؟ المثال يستخدم المنفذ 49120، ولكن يمكنك اختيار أي منفذ حر.
- هل يمكنني إضافة أو إزالة العقد دون توقف؟ نعم — يمكن نشر العقد أو إيقافها ديناميكيًا.
- هل أحتاج إلى ترخيص للإنتاج؟ يلزم ترخيص كامل للاستخدام في الإنتاج؛ تتوفر تراخيص تجريبية للتقييم.
- هل يدعم البحث بالصور مباشرةً؟ نعم — يوفر GroupDocs.Search مقارنة تجزئة الصور مدمجة.
ما هي شبكة البحث؟
تُعد SearchNetworkNode عقدة فردية في العنقود تستضيف نسخة من الفهرس المشترك وتُعالج طلبات البحث. تُعد شبكة البحث مجموعة من مثيلات SearchNetworkNode المتصلة التي تتشارك معلومات الفهرسة وتستجيب للاستعلامات بشكل تعاوني. يتيح لك هذا التصميم التعامل مع مجموعات مستندات ضخمة مع الحفاظ على أوقات استجابة منخفضة، كما يتيح الفشل التلقائي إذا توقفت إحدى العقد.
لماذا نستخدم GroupDocs.Search للـ Java؟
زود تطبيق Java الخاص بك بمحرك بحث يمكنه configure groupdocs search network في دقائق، ويتوسع أفقياً، ويدعم أكثر من 30 تنسيق ملف — بما في ذلك PDF و DOCX و XLSX و PPTX وأنواع الصور الشائعة. تُظهر المعايير أن عنقودًا من ثلاث عقد يمكنه فهرسة 500,000 مستند في أقل من 30 دقيقة على عتاد خادم قياسي، بينما يبقى زمن استجابة الاستعلام أقل من 200 ms حتى تحت حمل متزامن ثقيل.
المتطلبات المسبقة
- JDK 8+ مثبت على كل جهاز سيشغل عقدة.
- بيئة تطوير متكاملة (IDE) مثل IntelliJ IDEA أو Eclipse لإدارة المشروع بسهولة.
- Maven لحل التبعيات.
- معرفة أساسية بشبكات Java (منافذ TCP، الجدران النارية) ومفاهيم البرمجة المتعددة الخيوط.
المكتبات والاعتمادات المطلوبة
أضف مستودع GroupDocs والاعتماد إلى ملف pom.xml الخاص بك:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/search/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
</dependencies>
بدلاً من ذلك، قم بتنزيل أحدث نسخة من GroupDocs.Search for Java releases.
إعداد GroupDocs.Search للـ Java
التثبيت عبر Maven
يستورد مقطع Maven أعلاه المكتبة إلى مشروعك تلقائيًا.
الحصول على الترخيص
- Free Trial – استكشف الميزات الأساسية دون الحاجة إلى بطاقة ائتمان.
- Temporary License – فترة اختبار ممتدة للطيارات الداخلية.
- Full License – جاهز للإنتاج، استخدام غير محدود، ودعم أولوية.
التهيئة الأساسية والإعداد
تُدير فئة SearchNetworkDeployment إنشاء وإدارة عنقود البحث، مع معالجة دورات حياة العقد والموارد المشتركة. قبل أن تتمكن من التفاعل مع أي عقدة، يجب إنشاء كائن SearchNetworkDeployment وتوجيهه إلى مجلد فهرس مشترك. يُظهر كتلة الشيفرة التالية (المحافظة من الدرس الأصلي) الحد الأدنى من الإقلاع:
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Create an instance of Index with the path to store index data.
String indexPath = "path/to/index";
Index index = new Index(indexPath);
System.out.println("GroupDocs.Search initialized successfully.");
}
}
دليل التنفيذ
سنغوص الآن في كل مهمة أساسية، باستخدام شروحات واضحة خطوة بخطوة تسبق نواقل الشيفرة الأصلية.
كيفية نشر العقد في شبكة البحث
نشر عدة عقد يوزع عبء العمل ويحسن التحمل ضد الأخطاء. تمثل SearchNetworkNode نسخة JVM فردية تشارك في عنقود البحث، وتتعامل مع طلبات الفهرسة والاستعلام. من خلال تشغيل عدة عقد على منافذ متتالية، تنشئ شبكة مرنة حيث يمكن لكل عقدة خدمة طلبات العملاء ومشاركة الفهرس المشترك.
public class SearchNetworkDeployment {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Change if necessary.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
System.out.println("Deployed " + nodes.length + " search network nodes.");
}
}
كيفية الاشتراك في الأحداث
يمنحك الاشتراك في الأحداث نظرة مباشرة على صحة العقد، وتقدم الفهرسة، والأخطاء. توفر فئة SearchNetworkEvents مجموعة من ردود النداء التي تُطلق عند إجراءات هامة مثل إكمال الفهرسة، فشل العقد، أو إشعارات مخصصة. يتيح تسجيل المستمعين على العقد الرئيسية أو العاملة مراقبة في الوقت الفعلي واستجابات آلية للحفاظ على تشغيل الشبكة بسلاسة.
public class NodeEventSubscription {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Adjust if needed.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkEvents.subscribe(nodes[0]);
System.out.println("Subscribed to events for the master node.");
}
}
كيفية فهرسة المستندات
الفهرسة الفعّالة هي العمود الفقري لنتائج البحث السريعة. عند إضافة أدلة إلى العقدة الرئيسية، يقوم المحرك بمسح كل ملف، واستخراج المحتوى القابل للبحث، وتخزينه في بنية الفهرس المشترك. يمكن تشغيل هذه العملية بشكل تدريجي، حيث يتم تحديث الملفات التي تغيرت فقط، مما يقلل من حمل الإدخال/الإخراج ويضمن أن الاستعلامات تعكس دائمًا أحدث إصدارات المستندات.
public class DocumentIndexing {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Change if there is a conflict.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
IndexingDocuments.addDirectories(nodes[0], "YOUR_DOCUMENT_DIRECTORY");
System.out.println("Added directories to master node's index.");
}
}
كيفية إجراء بحث بالصور
يدعم GroupDocs.Search مقارنة تجزئة الصور، مما يتيح لك العثور على أصول بصرية مشابهة. تُغلف فئة SearchImage ملف صورة وتُحسب تجزئة إدراكية يمكن مطابقتها مع التجزئات المخزنة في الفهرس. من خلال تحديد الحد الأقصى لاختلاف التجزئة، تتحكم في تحمل التشابه البصري، مما يمكّن من اكتشاف موثوق للصور المكررة أو المرتبطة عبر المستودع.
public class ImageSearch {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Modify if needed.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchImage searchImage = SearchImage.create("YOUR_DOCUMENT_DIRECTORY/ic_arrow_back_black_18dp.png");
imageSearch(nodes[0], searchImage, 8);
}
}
كيفية تكوين منافذ الشبكة
إذا كان بيئتك تستخدم بالفعل المنفذ 49120، يمكنك تغييره إلى أي منفذ TCP حر. يحدد معامل basePort رقم المنفذ الابتدائي للعنقود، وتزيد كل عقدة لاحقة هذه القيمة تلقائيًا. تأكد من أن المنفذ المختار مفتوح في جدار الحماية، غير مشغول من قبل خدمات أخرى، ومُكوَّن بشكل متسق عبر جميع العقد للحفاظ على اتصال سلس.
int customPort = 50000; // Example of a custom port.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, customPort);
المشكلات الشائعة & استكشاف الأخطاء
| العَرَض | السبب المحتمل | الحل |
|---|---|---|
| فشل العقد في البدء | تعارض المنفذ | اختر basePort مختلفًا وقم بتحديث قواعد الجدار الناري. |
| الفهرسة بطيئة | عرض نطاق I/O غير كافٍ | استخدم تخزين SSD وفعل الفهرسة التدريجية. |
| عدم تشغيل الاشتراك في الأحداث | عدم تسجيل معالج الحدث | تأكد من استدعاء SearchNetworkEvents.subscribe(node) قبل بدء أي فهرسة. |
| بحث الصور لا يُعيد نتائج | فرق التجزئة منخفض جدًا | زد فرق التجزئة المسموح به (مثلاً من 4 إلى 8). |
الأسئلة المتكررة
س: كيف يمكنني تحسين أداء الفهرسة في شبكة GroupDocs.Search؟
ج: استخدم الفهرسة التدريجية، خزن الفهرس على SSD سريع، وخصص ذاكرة heap كافية لـ JVM.
س: هل يمكنني إضافة أو إزالة العقد دون إعادة تشغيل شبكة البحث بأكملها؟
ج: نعم — يمكن نشر العقد أو إيقافها ديناميكيًا. بعد إضافة عقدة، استدعِ SearchNetworkDeployment.deploy مرة أخرى لتحديث عرض العنقود.
س: كيف يُحسّن الاشتراك في الأحداث إدارة الشبكة؟
ج: توفر الأحداث المشترك فيها تنبيهات فورية لتغيّر حالة العقد، وتقدم الفهرسة، والأخطاء، مما يتيح استكشاف الأخطاء بشكل استباقي.
س: هل يمكن البحث في تنسيقات مستندات مختلفة في آنٍ واحد؟
ج: بالتأكيد. يدعم GroupDocs.Search ملفات PDF، Word، Excel، PowerPoint، الصور، والعديد من التنسيقات الأخرى في استعلام واحد.
س: ما مدى أمان البيانات في شبكة GroupDocs.Search؟
ج: الأمان يعتمد على بنية تحتيتك. نفّذ SSL/TLS لتواصل العقد، قيد الوصول إلى الشبكة، واتبع أفضل الممارسات لحماية البيانات.
آخر تحديث: 2026-06-27
تم الاختبار مع: GroupDocs.Search 25.4 للـ Java
المؤلف: GroupDocs