تسليط الضوء على نتائج البحث Java باستخدام GroupDocs.Search

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

إجابات سريعة

  • ماذا يعني “highlight search results java”؟ يشير إلى وضع علامات برمجية على الكلمات المفتاحية التي تم العثور عليها داخل المستندات عند استخدام مكتبات Java مثل GroupDocs.Search.
  • هل يمكنني تسليط الضوء على عدة مصطلحات في نفس المستند؟ نعم – استخدم HighlightOptions لتحديد عدد المصطلحات قبل/بعد كل تطابق.
  • هل أحتاج إلى ترخيص لتشغيل هذا المثال؟ نسخة تجريبية مجانية أو ترخيص مؤقت يكفي للاختبار؛ الترخيص الكامل مطلوب للإنتاج.
  • ما نسخة Java المطلوبة؟ Java 8 أو أحدث.
  • هل هذا النهج مناسب لمجموعات مستندات كبيرة؟ بالتأكيد – شبكة البحث توزع الفهرسة وحمل الاستعلام عبر العقد.

ما هو Highlight Search Results Java؟

Highlight search results java هو عملية أخذ استعلام بحث، تحديد القطع المتطابقة في مستنداتك، وتأكيد هذه القطع بصريًا (مثل إحاطتها بعلامات أو إرجاعها كمقاطع مُبرزة). هذا يجعل من السهل على المستخدمين النهائيين رؤية سياق كل تطابق دون فتح الملف بالكامل.

لماذا نستخدم GroupDocs.Search للتسليط الضوئي؟

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

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

  • Java Development Kit (JDK) 8+ – تأكد من أن java -version يُظهر 1.8 أو أعلى.
  • Maven – لإدارة التبعيات.
  • GroupDocs.Search for Java 25.4 – النسخة المستخدمة طوال هذا الدليل.
  • بيئة تطوير متكاملة مثل IntelliJ IDEA أو Eclipse (اختياري لكن يُنصح به).
  • معرفة أساسية بـ Java ومفاهيم الشبكات.

إعداد GroupDocs.Search for Java

يمكنك إضافة المكتبة إلى مشروعك إما عبر Maven أو بتحميل ملف JAR مباشرة.

إعداد 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.

خطوات الحصول على الترخيص

  • نسخة تجريبية: ابدأ بنسخة تجريبية لاستكشاف الميزات الأساسية.
  • ترخيص مؤقت: احصل على ترخيص اختبار ممتد من هذه الصفحة.
  • شراء: احصل على ترخيص كامل للنشر في بيئات الإنتاج.

التهيئة الأساسية والإعداد

أنشئ كائن Index يشير إلى المجلد الذي سيُخزن فيه فهرس البحث:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Create an instance of Index
        Index index = new Index("path/to/index/directory");
        System.out.println("GroupDocs.Search initialized successfully.");
    }
}

دليل التنفيذ

كيفية تسليط الضوء على نتائج البحث Java في شبكة موزعة

تكوين شبكة البحث

أولاً، حدد مكان وجود مستنداتك وأي منفذ ستستخدمه الشبكة.

import com.groupdocs.search.common.*;
import com.groupdocs.search.scaling.configuring.*;

String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/HighlightingResultsInNetwork/";
int basePort = 49116; // Change if port is busy

Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
  • basePath – المجلد الجذر الذي يحتوي على الملفات التي تريد فهرستها.
  • basePort – منفذ TCP للتواصل بين العقد؛ اختر منفذًا غير مستخدم.

نشر عقد شبكة البحث

انشر عقدة أو أكثر بناءً على التكوين. تصبح العقدة الأولى هي الرئيسة.

import com.groupdocs.search.scaling.*;

SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkNode masterNode = nodes[0];
  • nodes – مصفوفة تشمل جميع العقد العاملة.
  • masterNode – ينسق الفهرسة وتوزيع الاستعلامات.

الاشتراك في أحداث عقدة شبكة البحث

أرفق مستمعين إلى العقدة الرئيسة لتلقي إشعارات فورية (مثل انتهاء الفهرسة).

import com.groupdocs.search.scaling.events.*;

SearchNetworkNodeEvents.subscribe(masterNode);

فهرسة الأدلة في عقدة الشبكة

وجه العقدة إلى المجلد(ات) التي تريد فهرستها. الفئة المساعدة Utils.DocumentsPath تُعيد مسار بيانات العينة.

import com.groupdocs.search.examples.Utils;
import com.groupdocs.search.options.*;

IndexingDocuments.addDirectories(masterNode, Utils.DocumentsPath);

البحث عن نص عبر عقد الشبكة

نفّذ استعلامًا ضد جميع العقد واسترجع المستندات المتطابقة.

import java.util.ArrayList;
import com.groupdocs.search.scaling.results.*;

ArrayList<NetworkFoundDocument> documents = TextSearchInNetwork.searchAll(masterNode, "ipsum", false);
highlightInDocument(masterNode, documents.get(0), 3); // Highlight results from the first found document.
  • استبدل "ipsum" بأي مصطلح تحتاج للعثور عليه.
  • طريقة highlightInDocument (الموضحة لاحقًا) ستطبق التسليط الضوئي.

تسليط الضوء على عدة مصطلحات في المستند – Highlighting Search Results

الطريقة التالية توضح كيفية تسليط الضوء على القطع حول كل تطابق. كما تُظهر كيفية التحكم في عدد المصطلحات المحيطة، لتلبية الكلمة المفتاحية الثانوية highlight multiple terms document.

import com.groupdocs.search.highlighters.*;
import com.groupdocs.search.options.*;

public static void highlightInDocument(
    SearchNetworkNode node,
    NetworkFoundDocument document,
    int maxFragments) {
    
    Searcher searcher = node.getSearcher();
    FragmentHighlighter highlighter = new FragmentHighlighter(OutputFormat.PlainText);

    HighlightOptions options = new HighlightOptions();
    options.setTermsAfter(5);
    options.setTermsBefore(5);
    options.setTermsTotal(15);

    searcher.highlight(document, highlighter, options); // Perform highlighting on the document.

    FragmentContainer[] result = highlighter.getResult();
    for (FragmentContainer container : result) {
        if (container.getCount() == 0) continue;

        String[] fragments = container.getFragments();
        int count = Math.min(fragments.length, maxFragments);
        for (int j = 0; j < count; j++) {
            // Print each fragment within the specified limit.
        }
    }
}
  • OutputFormat.PlainText – يُعيد مقاطع نصية عادية؛ يمكنك التحويل إلى HTML لواجهة أكثر غنى.
  • HighlightOptions – يتحكم في عدد الكلمات قبل/بعد كل تطابق (setTermsBefore, setTermsAfter).
  • maxFragments – يحد عدد المقاطع التي تُعرض لكل مستند.

إغلاق عقد الشبكة

عند الانتهاء، أوقف تشغيل كل عقدة لتحرير الموارد.

for (SearchNetworkNode node : nodes) {
    node.close();
}

التطبيقات العملية

  • إدارة المستندات المؤسسية: مركزية ملفات الشركة وتمكين الموظفين من العثور فورًا على العقود أو السياسات ذات الصلة.
  • ملفات القضايا القانونية: استخراج المستندات السابقة بسرعة عبر تسليط الضوء على المصطلحات القانونية الرئيسية.
  • قواعد معرفة البحث والتطوير: يمكن للباحثين البحث في براءات الاختراع أو الأوراق التقنية ورؤية مقتطفات مُبرزة.
  • كتالوجات التجارة الإلكترونية: تمكين المتسوقين من العثور على منتجات عبر الكلمات المفتاحية مع إبراز التطابقات في الوصف.
  • أنظمة المكتبات: يستطيع الرواد البحث عبر آلاف الكتب وعرض مقاطع مُبرزة دون فتح كل ملف.

اعتبارات الأداء

  • حافظ على الفهارس محدثة: أعد فهرسة الملفات المتغيرة كل ليلة أو استخدم تحديثات تراكمية.
  • استفد من عدة عقد: وزّع الفهرسة وحمل الاستعلام لتجنب الاختناقات.
  • ضبط HighlightOptions: تقليل termsBefore/After يقلل من استهلاك الذاكرة للمستندات الضخمة.

المشكلات الشائعة & استكشاف الأخطاء

العرضالسبب المحتملالحل
لا توجد نتائجالفهرس غير مُنشأ أو يشير إلى مجلد خاطئتحقق من Utils.DocumentsPath وشغّل IndexingDocuments.addDirectories مرة أخرى
مخرجات التسليط الضوئي فارغةحدود HighlightOptions منخفضة جدًا أو مشكلة في ترميز المستندزد termsTotal أو تأكد من دعم ترميز المستند
خطأ تعارض المنفذbasePort مستخدم بالفعلاختر رقم منفذ مختلف (مثال: 49117)
استثناء الترخيصملف الترخيص مفقود أو منتهي الصلاحيةضع ملف GroupDocs.Search.lic صالح في جذر التطبيق

الأسئلة المتكررة

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

س: كيف يمكنني تسليط الضوء على عدة مصطلحات بحث في نفس المستند؟
ج: مرّر قائمة بالمصطلحات إلى طريقة highlight واضبط HighlightOptions لإظهار الكلمات المحيطة لكل تطابق.

س: هل يمكن الاشتراك في أحداث البحث في الوقت الفعلي؟
ج: بالتأكيد. استخدم SearchNetworkNodeEvents.subscribe(masterNode) لتلقي ردود الفعل حول تقدم الفهرسة، تنفيذ الاستعلام، والأخطاء.

س: ما صيغ الملفات التي يدعمها GroupDocs.Search للفهرسة والتسليط الضوئي؟
ج: أكثر من 50 صيغة، بما فيها DOCX، PDF، HTML، TXT، PPTX، وغيرها.

س: كيف يمكن تحسين سرعة البحث في مجموعات ضخمة؟
ج: حدّث الفهارس بانتظام، وزّعها عبر العقد، واضبط HighlightOptions لتقليل حجم القطع.

الخلاصة

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


آخر تحديث: 2026-01-08
تم الاختبار مع: GroupDocs.Search for Java 25.4
المؤلف: GroupDocs