| date | 2026-02-27 | |||
|---|---|---|---|---|
| description | تعلم كيفية إنشاء فهرس قابل للبحث في جافا باستخدام GroupDocs.Search for Java، إضافة ملفات للبحث، إضافة أدلة إلى العقدة، وتمكين الفهرسة في الوقت الحقيقي في جافا. | |||
| keywords |
|
|||
| title | إنشاء فهرس قابل للبحث في Java – نشر GroupDocs.Search للـ Java | |||
| type | docs | |||
| url | /ar/java/getting-started/deploy-groupdocs-search-java-setup-guide/ | |||
| weight | 1 |
Let's translate.
Be careful with Arabic direction: we can just write Arabic text; markdown will handle.
Now produce final Arabic translation.
في عالم اليوم القائم على البيانات، تحتاج تطبيقات إنشاء فهرس قابل للبحث java إلى التعامل مع مجموعات مستندات ضخمة بكفاءة. سواء كنت تبني خدمة بحث على مستوى المؤسسة أو مشروعًا أصغر، يمكن لشبكة بحث مُكوَّنة بشكل جيد أن تحسّن بشكل كبير سرعة الاسترجاع والملاءمة. في هذا الدليل سنستعرض العملية الكاملة لإعداد GroupDocs.Search for Java، من إضافة ملفات للبحث إلى إضافة أدلة إلى العقدة، لتتمكن من بدء فهرسة مستنداتك فورًا.
لماذا هذا مهم: يقلل الفهرس القابل للبحث زمن استجابة الاستعلام من ثوانٍ إلى مليثوان، ويتوسع مع نمو بياناتك، ويسمح لك بإضافة قدرات نص كامل قوية إلى أي حل مبني على Java—سواء كان بوابة ويب، تطبيق سطح مكتب، أو خدمة سحابية صغيرة.
- ما هو الهدف الأساسي من GroupDocs.Search؟ يوفر محركًا قابلًا للتوسع مبنيًا على Java لفهرسة والبحث في المستندات عبر شبكة موزعة.
- أي نسخة يجب أن أستخدمها؟ يُنصح باستخدام أحدث نسخة مستقرة (مثلاً 25.4) للمشروعات الجديدة.
- هل أحتاج إلى ترخيص؟ تتوفر نسخة تجريبية مجانية لمدة 30 يومًا؛ يلزم الحصول على ترخيص دائم للاستخدام في الإنتاج.
- هل يمكنني إضافة كل من الملفات والأدلة الكاملة؟ نعم – استخدم المساعدين
addFilesوaddDirectoriesلاستيعاب المحتوى. - ما نسخة Java المطلوبة؟ Java 8 أو أعلى، مع Maven لإدارة الاعتمادات.
- كيف يعمل الفهرس الزمني الفعلي java؟ عن طريق الاشتراك في أحداث العقدة يمكنك تشغيل إعادة الفهرسة تلقائيًا عند تغير الملفات.
إنشاء فهرس قابل للبحث في Java يعني بناء بنية بيانات تربط المصطلحات بالمستندات التي تحتويها، مما يتيح استعلامات نص كامل سريعة. تقوم GroupDocs.Search بتجريد الأعمال الثقيلة، لتتمكن من التركيز على تغذية المستندات وضبط سلوك البحث.
- بنية شبكة قابلة للتوسع – نشر عدة عقد تشارك عبء الفهرسة.
- دعم غني لتنسيقات المستندات – PDFs، Word، Excel، PowerPoint، الصور، وأكثر.
- تحديثات مدفوعة بالأحداث – اشترك في أحداث العقدة للحفاظ على الفهرس محدثًا في الوقت الفعلي.
- تكامل بسيط مع Maven – أضف بضع أسطر إلى
pom.xmlوابدأ الفهرسة.
تطلق GroupDocs.Search أحداثًا كلما تمت إضافة ملف أو تحديثه أو إزالته. من خلال معالجة هذه الأحداث يمكنك استدعاء addFiles أو addDirectories تلقائيًا، مما يضمن بقاء الفهرس متزامنًا دون تدخل يدوي. هذا النهج مثالي لأنظمة إدارة المستندات، بوابات المحتوى، وأي تطبيق يتغير فيه البيانات بشكل متكرر.
- JDK 8+ مثبت على جهاز التطوير الخاص بك.
- بيئة تطوير متكاملة مثل IntelliJ IDEA أو Eclipse.
- معرفة أساسية بـ Java و Maven.
- الوصول إلى مكتبة GroupDocs.Search for Java (تحميل أو Maven).
أضف المستودع والاعتماد إلى ملف 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>نصيحة احترافية: حافظ على تحديث رقم الإصدار بالتحقق من صفحة الإصدارات الرسمية.
يمكنك أيضًا تحميل ملف JAR مباشرة من الموقع الرسمي: GroupDocs.Search for Java releases.
- تجربة مجانية: تقييم لمدة 30 يومًا.
- ترخيص مؤقت: طلب للاختبار الموسع.
- شراء: مطلوب للنشر في بيئات الإنتاج.
أنشئ كائن تكوين يشير إلى مجلد سيتم تخزين ملفات الفهرس فيه ويحدد منفذ الاتصال الأساسي:
import com.groupdocs.search.Configuration;
class InitializeSearch {
public static void main(String[] args) {
String basePath = "your/base/path";
int basePort = 8080;
Configuration config = new ConfiguringSearchNetwork().configure(basePath, basePort);
// Use this configuration for subsequent operations
}
}فيما يلي نستعرض الميزات الأساسية التي ستحتاجها لإضافة ملفات للبحث ولإضافة أدلة إلى العقدة، مع نشر شبكة قابلة للتوسع.
تكوين شبكة البحث هو الخطوة الأولى نحو بناء فهرس قابل للبحث.
import com.groupdocs.search.Configuration;
import com.groupdocs.search.scaling.*;
class ConfiguringSearchNetwork {
public static Configuration configure(String basePath, int basePort) {
// Configure the search network with specified base path and port
return new Configuration(basePath, basePort);
}
}basePath– الدليل الذي سيتم حفظ بيانات الفهرس فيه.basePort– المنفذ الابتدائي؛ كل عقدة ستزيد هذا الرقم.
نشر العقد يوزع عبء الفهرسة عبر عدة آلات أو عمليات.
import com.groupdocs.search.scaling.*;
class SearchNetworkDeployment {
public static SearchNetworkNode[] deploy(String basePath, int basePort, Configuration configuration) {
// Deploy nodes based on the provided configuration
return new SearchNetworkNode[]{new SearchNetworkNode()};
}
}كل SearchNetworkNode يشغّل خدمة فهرسة خاصة به، مما يتيح لك إنشاء فهرس قابل للبحث java يتوسع أفقياً.
التحديثات الفورية تحافظ على تزامن الفهرس مع تغييرات نظام الملفات.
import com.groupdocs.search.scaling.*;
class SearchNetworkNodeEvents {
public static void subscribe(SearchNetworkNode node) {
// Logic to subscribe to the specified node's events
}
}من خلال الاستماع إلى الأحداث، يمكنك تشغيل إعادة الفهرسة تلقائيًا عندما تصل ملفات جديدة.
استخدم هذا المساعد لإضافة أدلة إلى العقدة، مع جمع جميع المستندات المدعومة بشكل متكرر.
import java.io.File;
import java.util.ArrayList;
class DirectoryAdder {
public static void addDirectories(SearchNetworkNode node, String... directoryPaths) {
ArrayList<String> files = new ArrayList<>();
for (String directoryPath : directoryPaths) {
final File folder = new File(directoryPath);
listFiles(folder, files);
}
addFiles(node, files.toArray(new String[0]));
}
private static void listFiles(final File folder, ArrayList<String> list) {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFiles(fileEntry, list);
} else {
list.add(fileEntry.getPath());
}
}
}
}عند الحاجة إلى تحكم دقيق، أضف ملفات للبحث بشكل فردي:
import com.groupdocs.search.Document;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import org.apache.commons.io.FilenameUtils;
import com.groupdocs.search.Indexer;
import com.groupdocs.search.options.*;
class FileAdder {
public static void addFiles(SearchNetworkNode node, String... filePaths) {
try {
InputStream[] streams = new FileInputStream[filePaths.length];
Document[] documents = new Document[filePaths.length];
for (int i = 0; i < filePaths.length; i++) {
String filePath = filePaths[i];
InputStream stream = new FileInputStream(filePath);
streams[i] = stream;
// Create a document from the input stream
String fileName = FilenameUtils.getName(filePath);
String extension = "." + FilenameUtils.getExtension(filePath);
Document document = Document.createFromStream(
fileName,
new Date(),
extension,
stream);
documents[i] = document;
}
// Initialize the indexer and configure options
Indexer indexer = node.getIndexer();
IndexingOptions options = new IndexingOptions();
options.setUseRawTextExtraction(false);
} catch (IOException e) {
e.printStackTrace();
}
}
}هذه الطريقة تمنحك المرونة لفهرسة ملفات قادمة من تدفقات، تخزين سحابي، أو مواقع مؤقتة.
- بوابات مستندات المؤسسات التي تحتاج إلى بحث فوري عبر آلاف ملفات PDF وOffice.
- منصات الاكتشاف القانوني حيث يتم إضافة أدلة جديدة باستمرار ويجب أن تكون قابلة للبحث في الوقت الفعلي.
- أنظمة إدارة المحتوى التي تخزن صورًا وعروض تقديمية وجداول بيانات وتحتاج إلى بحث نص كامل.
| المشكلة | السبب | الحل |
|---|---|---|
| عدم ظهور المستندات في نتائج البحث | الفهرس غير مُلتزم | استدعِ node.getIndexer().commit() بعد إضافة الملفات. |
| خطأ تعارض المنفذ | خدمة أخرى تستخدم basePort |
اختر basePort مختلفًا أو تحقق من المنافذ المتاحة. |
| تنسيق ملف غير مدعوم | المكتبة لا تحتوي على محلل | تأكد من أن امتداد الملف مدعوم أو أضف مستخرجًا مخصصًا. |
- تحقق من صحة العقدة: استخدم نقطة الفحص المدمجة (
http://localhost:{port}/health) لتأكيد تشغيل كل عقدة. - راقب استهلاك الذاكرة: دفعات كبيرة من المستندات قد ترفع استهلاك الذاكرة؛ فكر في الفهرسة على دفعات أصغر واستدعِ
commit()بشكل دوري. - افحص السجلات: تكتب GroupDocs.Search سجلات مفصلة إلى مجلد
basePath—راجعها للعثور على أخطاء التحليل أو مهلات الشبكة.
س: هل يمكنني استخدام GroupDocs.Search في تطبيق Java سحابي؟
ج: نعم. تعمل المكتبة مع أي بيئة تشغيل Java، ويمكنك توجيه basePath إلى مجلد مُركب على الشبكة أو تخزين سحابي مُثبت محليًا.
س: كيف أقوم بتحديث الفهرس عندما يتغير ملف؟
ج: اشترك في أحداث العقدة (انظر الميزة 3) واستدعِ addFiles أو addDirectories مرة أخرى للمسارات المعدلة.
س: هل هناك حد لعدد العقد التي يمكن نشرها؟
ج: عمليًا، الحد يُحدَّد بموارد الأجهزة وعرض النطاق الترددي للشبكة. لا تفرض الواجهة البرمجية حدًا ثابتًا.
س: هل أحتاج إلى إعادة تشغيل العقد بعد إضافة ملفات جديدة؟
ج: لا. إضافة الملفات تُطلق الفهرسة تلقائيًا؛ تحتاج فقط إلى الالتزام إذا كنت تؤجل العملية.
س: ما هي تنسيقات المستندات المدعومة مباشرة؟
ج: PDFs، DOC/DOCX، XLS/XLSX، PPT/PPTX، TXT، HTML، والعديد من أنواع الصور. راجع الوثائق الرسمية للقائمة الكاملة.
س: كيف يمكنني تمكين الفهرسة الفورية java لمجلد يتلقى تحميلات مستمرة؟
ج: نفّذ مراقب نظام ملفات (مثل java.nio.file.WatchService) يستدعي DirectoryAdder.addDirectories(node, path) كلما تم اكتشاف ملف جديد.
آخر تحديث: 2026-02-27
تم الاختبار مع: GroupDocs.Search for Java 25.4
المؤلف: GroupDocs