كيفية فهرسة المستندات باستخدام GroupDocs.Search للـ Java
في عالم اليوم القائم على البيانات، تعتبر كيفية فهرسة المستندات بكفاءة مهارة حاسمة لأي مطور Java يتعامل مع مجموعات كبيرة من الملفات. سواء كنت تعالج العقود القانونية أو القوائم المالية أو التقارير الداخلية، يتيح لك فهرس البحث المُصمم جيدًا العثور على المعلومة الدقيقة في ثوانٍ بدلاً من ساعات من الفحص اليدوي. يشرح هذا الدليل كيفية إنشاء فهرس بحث، إضافة المستندات، وتشغيل الاستعلامات النصية والموضوعية باستخدام GroupDocs.Search للـ Java.
إجابات سريعة
- ما هي الخطوة الأولى لفهرسة المستندات؟ Create an
Indexinstance that points to a folder where the index files will be stored. - ما هي الطريقة التي تضيف المستندات إلى الفهرس؟ Call
index.add("PATH_TO_DOCUMENTS")to scan a directory and ingest supported files. - هل يمكنني البحث عن نطاقات رقمية؟ Yes – use a text query like
"400 ~~ 4000"or an object query viaSearchQuery.createNumericRangeQuery. ThecreateNumericRangeQuerymethod builds a numeric range query object. - هل أحتاج إلى ترخيص؟ A free trial works for evaluation; a commercial license unlocks full feature set and removes usage limits.
- ما نسخة Java المطلوبة؟ JDK 8 or higher is supported.
ما هي كيفية فهرسة المستندات باستخدام GroupDocs.Search؟
إن فهرسة المستندات تُنشئ مخزنًا للرموز القابلة للبحث لكل ملف، مما يسمح للمحرك باسترجاع النتائج دون قراءة الملفات الأصلية في كل مرة. تُحوِّل هذه الخطوة المسبقة المحتوى الخام إلى فهرس مُحسّن يمكن الاستعلام عنه خلال ملليثوان. يخزن الفهرس المصطلحات، المواقع، والبيانات الوصفية، مما يتيح عمليات بحث سريعة عن العبارات والقرب عبر جميع أنواع المستندات المدعومة.
لماذا نستخدم GroupDocs.Search للـ Java؟
عادةً ما تُنتهي عمليات البحث في أقل من 50 ملليثانية على مجموعة مكوّنة من 10 000 ملف (متوسط 1 KB لكل منها) تعمل على جهاز افتراضي قياسي بمعالجين 2‑CPU وذاكرة 8 GB. تدعم المكتبة أكثر من 30 تنسيقًا للإدخال والإخراج—بما في ذلك PDF وDOCX وXLSX وPPTX وTXT وHTML—وبالتالي يمكنك فهرسة أي مستند تجاري تقريبًا دون الحاجة إلى محولات إضافية. يتيح لك API المرن دمج استعلامات النص العادي، والنطاقات الرقمية، والاستعلامات الموضوعية المعقدة، بينما تسمح التحديثات التزايدية بإضافة ملفات جديدة دون إعادة بناء الفهرس بالكامل.
المتطلبات المسبقة
- Maven مثبت لإدارة التبعيات.
- بيئة تطوير متكاملة مثل IntelliJ IDEA أو Eclipse.
- معرفة أساسية بـ Java (مفاهيم OOP، معالجة الاستثناءات).
إعداد GroupDocs.Search للـ 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.
خطوات الحصول على الترخيص
- Free trial – استكشف المكتبة دون تكلفة.
- Temporary license – اطلب مفتاحًا قصير الأمد للتقييم الموسع.
- Purchase – احصل على ترخيص كامل للاستخدام الإنتاجي.
التهيئة الأساسية والإعداد
لـ إضافة المستندات إلى الفهرس، يجب أولاً إنشاء كائن Index يشير إلى المجلد الذي سيتم تخزين ملفات الفهرس فيه:
Index هو الفئة الأساسية التي تمثل فهرسًا قابلًا للبحث على القرص.
import com.groupdocs.search.Index;
// Initialize the index by specifying a directory path
Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\NumericRangeSearch");
هذا السطر ينشئ (أو يفتح) فهرسًا جاهزًا لاستقبال المستندات.
دليل التنفيذ
إنشاء وفهرسة المستندات
كيفية إضافة المستندات إلى الفهرس
تقوم طريقة add بمسح مجلد وتخزين البيانات القابلة للبحث لكل ملف. تعالج كل مستند مدعوم بشكل متكرر، تستخرج النص والبيانات الوصفية، وتكتب الرموز إلى مجلد الفهرس الذي حددته مسبقًا.
import com.groupdocs.search.Index;
// Initialize an index at the specified path
Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\NumericRangeSearch");
// Add documents from a directory for indexing
index.add("YOUR_DOCUMENT_DIRECTORY");
- Parameters: سلسلة المسار تشير إلى المجلد الذي يحتوي على الملفات التي تريد فهرستها.
- Purpose: بعد هذه الخطوة، يحتوي الفهرس على رموز من جميع أنواع المستندات المدعومة، مما يتيح بحثًا سريعًا عبر المجموعة بأكملها.
بحث الاستعلام النصي
كيفية إجراء بحث نطاق رقمي نصي
يمكنك البحث باستخدام سلسلة بسيطة تحدد نطاقًا. يفسر المحرك العامل ~~ كـ “بين” ويعيد جميع المستندات التي تحتوي على أرقام ضمن الحدود المحددة.
import com.groupdocs.search.*;
import com.groupdocs.search.results.*;
// Define a query for numeric values within a specific range
String query1 = "400 ~~ 4000";
// Execute text-based search on indexed data
SearchResult result1 = index.search(query1);
- Parameters: سلسلة الاستعلام
"400 ~~ 4000"تخبر المحرك بالبحث عن أرقام بين 400 و4000. - Return value:
SearchResultيحتوي على قائمة المستندات المتطابقة ويُبرز المقاطع المتطابقة.
بحث الاستعلام الموضوعي
كيفية استخدام استعلام موضوعي للنطاقات الرقمية
توفر الاستعلامات القائمة على الكائنات تحكمًا برمجيًا في معايير البحث، مما يتيح لك دمج شروط متعددة أو بناء استعلامات بشكل ديناميكي أثناء وقت التشغيل.
import com.groupdocs.search.*;
import com.groupdocs.search.results.*;
// Create a numeric range query object
SearchQuery query2 = SearchQuery.createNumericRangeQuery(400, 4000);
// Perform search using the query object
SearchResult result2 = index.search(query2);
- Parameters:
createNumericRangeQueryتستقبل الأعداد الصحيحة للبداية والنهاية. - Purpose: هذه الطريقة مثالية عندما تحتاج إلى تصفية النتائج حسب حقول رقمية مثل إجماليات الفواتير، الأعمار، أو رموز المنتجات.
تطبيقات عملية
فيما يلي بعض السيناريوهات الواقعية حيث تصبح كيفية فهرسة المستندات عاملاً محوريًا:
- إدارة المستندات القانونية – تحديد البنود، أرقام القضايا، أو التواريخ عبر آلاف العقود في ثوانٍ.
- التقارير المالية – استخراج المعاملات التي تقع ضمن نطاق مالي محدد دون فحص كل جدول بيانات.
- تتبع المخزون – العثور على العناصر عبر أرقام السيريال، رموز الدفعات، أو نطاقات SKU عبر نظام ملفات موزع.
يمكن أن يؤدي دمج GroupDocs.Search مع قواعد البيانات، التخزين السحابي، أو قوائم الرسائل إلى أتمتة سير عمل المستندات بشكل أكبر.
اعتبارات الأداء
- Regular index updates: أعد تشغيل
index.addللملفات الجديدة للحفاظ على حداثة الفهرس. - Resource management: راقب استخدام الذاكرة المؤقتة؛ تستفيد الفهارس الكبيرة من إعدادات جمع القمامة في JVM المُضبوطة.
- Query optimisation: استخدم الاستعلامات الموضوعية للمرشحات المعقدة لتقليل الفحص غير الضروري وتحسين زمن الاستجابة.
المشكلات الشائعة والحلول
| المشكلة | سبب حدوثه | الحل |
|---|---|---|
| البحث لا يُعيد أي نتائج | الفهرس غير مُنشأ أو مسار المجلد غير صحيح | تحقق من تنفيذ index.add على الدليل الصحيح وأن مجلد الفهرس قابل للكتابة. |
| OutOfMemoryError أثناء الفهرسة | ملفات كبيرة جدًا أو ذاكرة مؤقتة غير كافية | زيادة قيمة JVM -Xmx أو فهرسة الملفات على دفعات أصغر. |
| تنسيق ملف غير مدعوم | نوع الملف غير معترف به من قبل GroupDocs.Search | تأكد من أن الامتداد موجود ضمن القائمة المدعومة (PDF, DOCX, XLSX, PPTX, TXT, HTML، إلخ). |
الأسئلة المتكررة
س: كيف أقوم بتحديث فهرس موجود بمستندات جديدة؟
A: استدعِ index.add("NEW_DOCUMENT_PATH") مرة أخرى؛ تقوم المكتبة بدمج الإدخالات الجديدة دون إعادة إنشاء الفهرس بالكامل.
س: هل يمكن لـ GroupDocs.Search التعامل مع تنسيقات ملفات مختلفة؟
A: نعم، تدعم أكثر من 30 تنسيقًا — بما في ذلك PDF وDOCX وXLSX وPPTX وTXT وHTML — وبالتالي يمكنك فهرسة أي مستند تجاري تقريبًا.
س: ما هي متطلبات النظام لاستخدام GroupDocs.Search؟
A: بيئة تشغيل Java 8+، على الأقل 2 GB RAM للمجموعات الصغيرة (المجموعات الأكبر تستفيد من 4 GB+)، وإمكانية القراءة/الكتابة إلى مجلد الفهرس.
س: كيف يمكنني استكشاف مشكلات أداء البحث؟
A: حافظ على تحديث الفهرس، حلل استعلاماتك، وراجع إعدادات ذاكرة JVM. تقليل عدد الحقول المفهرسة أو استخدام الاستعلامات الموضوعية يمكن أن يسرّع التنفيذ أيضًا.
س: هل هناك دعم للمرادفات أو البحث الضبابي؟
A: نعم، يمكنك تمكين قواميس المرادفات والبحث الضبابي عبر فئة SearchOptions لتوسيع نطاق التطابق دون التضحية بالملاءمة. فئة SearchOptions تُكوّن سلوك البحث المتقدم مثل المرادفات والبحث الضبابي.
آخر تحديث: 2026-08-10
تم الاختبار مع: GroupDocs.Search 25.4 للـ Java
المؤلف: GroupDocs