Skip to content

Latest commit

 

History

History
273 lines (215 loc) · 15.2 KB

File metadata and controls

273 lines (215 loc) · 15.2 KB
date 2026-02-27
description تعلم كيفية إنشاء فهرس قابل للبحث في جافا باستخدام GroupDocs.Search for Java، إضافة ملفات للبحث، إضافة أدلة إلى العقدة، وتمكين الفهرسة في الوقت الحقيقي في جافا.
keywords
GroupDocs.Search for Java
deploy GroupDocs.Search
Java search network setup
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 for Java، من إضافة ملفات للبحث إلى إضافة أدلة إلى العقدة، لتتمكن من بدء فهرسة مستنداتك فورًا.

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

إجابات سريعة

  • ما هو الهدف الأساسي من GroupDocs.Search؟ يوفر محركًا قابلًا للتوسع مبنيًا على Java لفهرسة والبحث في المستندات عبر شبكة موزعة.
  • أي نسخة يجب أن أستخدمها؟ يُنصح باستخدام أحدث نسخة مستقرة (مثلاً 25.4) للمشروعات الجديدة.
  • هل أحتاج إلى ترخيص؟ تتوفر نسخة تجريبية مجانية لمدة 30 يومًا؛ يلزم الحصول على ترخيص دائم للاستخدام في الإنتاج.
  • هل يمكنني إضافة كل من الملفات والأدلة الكاملة؟ نعم – استخدم المساعدين addFiles و addDirectories لاستيعاب المحتوى.
  • ما نسخة Java المطلوبة؟ Java 8 أو أعلى، مع Maven لإدارة الاعتمادات.
  • كيف يعمل الفهرس الزمني الفعلي java؟ عن طريق الاشتراك في أحداث العقدة يمكنك تشغيل إعادة الفهرسة تلقائيًا عند تغير الملفات.

ما هو “create searchable index java”؟

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

لماذا نستخدم GroupDocs.Search for Java؟

  • بنية شبكة قابلة للتوسع – نشر عدة عقد تشارك عبء الفهرسة.
  • دعم غني لتنسيقات المستندات – PDFs، Word، Excel، PowerPoint، الصور، وأكثر.
  • تحديثات مدفوعة بالأحداث – اشترك في أحداث العقدة للحفاظ على الفهرس محدثًا في الوقت الفعلي.
  • تكامل بسيط مع Maven – أضف بضع أسطر إلى pom.xml وابدأ الفهرسة.

الفهرسة الفورية java مع GroupDocs.Search

تطلق GroupDocs.Search أحداثًا كلما تمت إضافة ملف أو تحديثه أو إزالته. من خلال معالجة هذه الأحداث يمكنك استدعاء addFiles أو addDirectories تلقائيًا، مما يضمن بقاء الفهرس متزامنًا دون تدخل يدوي. هذا النهج مثالي لأنظمة إدارة المستندات، بوابات المحتوى، وأي تطبيق يتغير فيه البيانات بشكل متكرر.

المتطلبات المسبقة

  • JDK 8+ مثبت على جهاز التطوير الخاص بك.
  • بيئة تطوير متكاملة مثل IntelliJ IDEA أو Eclipse.
  • معرفة أساسية بـ Java و Maven.
  • الوصول إلى مكتبة GroupDocs.Search for 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
    }
}

كيف تنشئ فهرسًا قابلًا للبحث java باستخدام GroupDocs.Search؟

فيما يلي نستعرض الميزات الأساسية التي ستحتاجها لإضافة ملفات للبحث ولإضافة أدلة إلى العقدة، مع نشر شبكة قابلة للتوسع.

الميزة 1 – التكوين وإعداد الشبكة

تكوين شبكة البحث هو الخطوة الأولى نحو بناء فهرس قابل للبحث.

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 – المنفذ الابتدائي؛ كل عقدة ستزيد هذا الرقم.

الميزة 2 – نشر عقد شبكة البحث

نشر العقد يوزع عبء الفهرسة عبر عدة آلات أو عمليات.

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 يتوسع أفقياً.

الميزة 3 – الاشتراك في أحداث العقدة

التحديثات الفورية تحافظ على تزامن الفهرس مع تغييرات نظام الملفات.

import com.groupdocs.search.scaling.*;

class SearchNetworkNodeEvents {
    public static void subscribe(SearchNetworkNode node) {
        // Logic to subscribe to the specified node's events
    }
}

من خلال الاستماع إلى الأحداث، يمكنك تشغيل إعادة الفهرسة تلقائيًا عندما تصل ملفات جديدة.

الميزة 4 – إضافة أدلة إلى عقدة الشبكة

استخدم هذا المساعد لإضافة أدلة إلى العقدة، مع جمع جميع المستندات المدعومة بشكل متكرر.

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());
            }
        }
    }
}

الميزة 5 – إضافة ملفات إلى عقدة الشبكة

عند الحاجة إلى تحكم دقيق، أضف ملفات للبحث بشكل فردي:

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