كيفية البحث في المستندات باستخدام GroupDocs.Search Java
في تطبيقات المؤسسات الحديثة، كيفية البحث في المستندات بسرعة ودقة تُعد متطلبًا حاسمًا. سواء كنت تتعامل مع العقود أو التقارير أو أي مستودع مستندات كبير، يوفر GroupDocs.Search for Java محرك بحث نص كامل قوي مع مطابقة غير دقيقة مدمجة. يشرح هذا البرنامج التعليمي كيفية إعداد المكتبة، إنشاء الفهرس، إضافة المستندات، تكوين البحث غير الدقيق في Java، واسترجاع النتائج—كل ذلك بشرح واضح ومحادث.
إجابات سريعة
- ما هي الخطوة الأولى؟ تثبيت مكتبة GroupDocs.Search Java عبر Maven أو تنزيلها مباشرة.
- كيف أنشئ فهرسًا؟ إنشاء كائن
Indexيشير إلى مجلد على القرص؛ المكتبة تبني الهيكل القابل للبحث تلقائيًا. - هل يمكنني البحث مع الأخطاء الإملائية؟ نعم—قم بتمكين البحث غير الدقيق لمطابقة المصطلحات التي تحتوي على أخطاء إملائية أو اختلافات طفيفة.
- كيف أضيف مستندات؟ استخدم طريقة
addعلى كائنIndex، مع تمرير المجلد الذي يحتوي على ملفاتك. - ما نسخة Java المطلوبة؟ JDK 8 أو أعلى مدعومة.
ما هو “كيفية البحث في المستندات” في سياق GroupDocs.Search؟
“كيفية البحث في المستندات” تشير إلى عملية بناء فهرس قابل للبحث وإصدار استعلامات تُعيد الملفات المتطابقة، مع إمكانية استخدام المنطق غير الدقيق لتحمل الأخطاء الإملائية. يتعامل GroupDocs.Search مع التجزئة والفهرسة والترتيب في الخلفية، بحيث يمكنك التركيز على منطق الأعمال.
لماذا تستخدم GroupDocs.Search للـ Java؟
يدعم GroupDocs.Search أكثر من 30 تنسيق ملف (بما في ذلك DOCX، PDF، TXT، HTML، و XLSX) ويمكنه فهرسة مستندات متعددة المئات من الصفحات دون تحميل الملف بالكامل في الذاكرة، مما يوفر استجابات استعلام بأقل من ثانية على عتاد الخادم المعتاد. تحسين البحث غير الدقيق يحسن تجربة المستخدم عن طريق إرجاع نتائج ذات صلة حتى عندما تحتوي الاستعلامات على أخطاء إملائية.
المتطلبات المسبقة
- Java Development Kit (JDK): الإصدار 8 أو أحدث.
- IDE: IntelliJ IDEA، Eclipse، أو أي محرر متوافق مع Java.
- مكتبة GroupDocs.Search للـ Java: أضفها عبر Maven (مستحسن) أو قم بتنزيل ملف JAR.
كيفية إعداد GroupDocs.Search للـ Java؟
لبدء العمل، أضف تبعية GroupDocs.Search إلى ملف البناء الخاص بك، تأكد من أن عنوان URL للمستودع قابل للوصول، وتحقق من أن نسخة JDK تلبي الحد الأدنى المطلوب. بعد حل المكتبة، يمكنك استيراد فصولها في الكود وإنشاء مجلد فهرس على القرص حيث سيتم تخزين جميع البيانات القابلة للبحث.
إعداد 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
GroupDocs.Search Documentation
كيفية إنشاء فهرس؟
أنشئ مجلد فهرس دائم حيث يخزن GroupDocs.Search البيانات المجزأة. حمّل فهرسك الأول بسطر واحد من الكود—new Index("path/to/indexFolder"). فئة Index هي المكوّن الأساسي الذي يمثل مجموعة قابلة للبحث من المستندات في الذاكرة وعلى القرص.
import com.groupdocs.search.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/SearchResults";
Index index = new Index(indexFolder);
كيفية إضافة مستندات إلى الفهرس؟
استخدم طريقة add لكائن Index لتحديد مجلد يحتوي على ملفات المصدر الخاصة بك. سيقوم المحرك بمسح الصيغ المدعومة بشكل متكرر، استخراج المحتوى النصي، وتحديث الهياكل الداخلية. هذه الدعوة الواحدة تتعامل مع دفعات كبيرة بكفاءة، مما يلغي الحاجة إلى معالجة الملفات يدويًا واحدةً تلو الأخرى.
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentFolder);
كيفية تكوين البحث غير الدقيق في Java؟
تحدد فئة FuzzySearchOptions معلمات مثل مسافة التحرير وطول البادئة التي تتحكم في مدى تحمل البحث للأخطاء الإملائية. يجمع كائن SearchOptions جميع إعدادات وقت البحث، بما في ذلك خيارات البحث غير الدقيق، حدود النتائج، وتفضيلات التمييز. قم بتمكين المطابقة غير الدقيقة عن طريق تعيين FuzzySearchOptions على كائن SearchOptions. هذا يخبر المحرك بأخذ المصطلحات ضمن مسافة تحرير قابلة للتكوين في الاعتبار، مما يجعل عمليات البحث تتحمل الأخطاء الإملائية.
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/SearchResults";
Index index = new Index(indexFolder);
كيفية تنفيذ عملية بحث؟
استدعِ طريقة search على كائن Index، مع توفير سلسلة الاستعلام وإعدادات SearchOptions المكوّنة. يعالج المحرك الطلب، يطبق المطابقة غير الدقيقة إذا تم تمكينها، ويرتب النتائج بناءً على درجات الصلة. تكتمل العملية بسرعة حتى على فهارس كبيرة لأن البحث يتم على هياكل الرموز المُنشأة مسبقًا. تُعيد الطريقة مجموعة SearchResult التي تحتوي على المستندات المتطابقة، عدد النتائج، والقطع المميزة.
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentFolder);
كيفية معالجة وعرض نتائج البحث؟
SearchResult هي مجموعة تحتفظ بكائنات SearchResultItem الفردية، كل منها يصف مستندًا متطابقًا، عدد النتائج، والقطع المميزة. قم بالتكرار على عناصر SearchResult واطبع مسار كل مستند، عدد مرات الظهور، والعبارات المتطابقة. يتيح لك هذا الحلقة البسيطة بناء جداول واجهة المستخدم، سجلات، أو استجابات API تُظهر بالضبط لماذا تم مطابقة المستند.
import com.groupdocs.search.options.*;
SearchOptions options = new SearchOptions();
options.getFuzzySearch().setEnabled(true);
options.getFuzzySearch().setFuzzyAlgorithm(new TableDiscreteFunction(3));
تطبيقات عملية
سيناريوهات واقعية حيث كيفية البحث في المستندات مهمة:
- إدارة المستندات القانونية: العثور على البنود أو الأطراف عبر آلاف العقود في ثوانٍ.
- البحث الأكاديمي: استرجاع الأوراق ذات الصلة حتى إذا كان مصطلح البحث مكتوبًا بشكل خاطئ.
- إدارة محتوى المؤسسة: تمكين البوابات الداخلية من بحث سريع يتحمل الأخطاء الإملائية عبر التقارير، البريد الإلكتروني، والعروض التقديمية.
اعتبارات الأداء
- تحديث الفهرس: أعد تشغيل
addأوupdateكلما تغيرت ملفات المصدر للحفاظ على حداثة النتائج. - إدارة الذاكرة: يقوم GroupDocs.Search ببث الملفات الكبيرة، لذا يبقى استهلاك الذاكرة منخفضًا حتى لملفات PDF ذات 500 صفحة.
- الفهرسة المجزأة: قسّم مجموعات البيانات الضخمة إلى مجلدات فهرس متعددة لتوازي المعالجة وتحسين زمن استجابة الاستعلام.
الأسئلة المتكررة
س: ما هو البحث غير الدقيق في Java ولماذا هو مفيد؟
ج: يتيح البحث غير الدقيق في Java مطابقة تقريبية للسلاسل، مما يسمح للاستعلامات بإرجاع نتائج رغم الأخطاء الإملائية أو التهجئات البديلة، وهو ما يحسن تجربة المستخدم النهائي.
س: كيف أقوم بتحديث فهرسي بعد إضافة ملفات جديدة؟
ج: استدعِ index.add("new/files/folder") مرة أخرى؛ تقوم المكتبة بدمج المحتوى الجديد بذكاء دون إعادة بناء الفهرس بالكامل.
س: هل يمكن لـ GroupDocs.Search التعامل مع ملفات PDF محمية بكلمة مرور؟
ج: نعم—قدّم كلمة المرور في DocumentLoadOptions عند إضافة الملف، وسيقوم المحرك بفك التشفير وفهرسة المحتوى.
س: هل هناك حد لعدد المستندات التي يمكنني فهرستها؟
ج: المكتبة تتوسع لتشمل ملايين الملفات؛ الأداء يعتمد على العتاد والتخزين، وليس هناك حد ثابت مبرمج.
س: أين يمكنني العثور على أمثلة أكثر تقدماً؟
ج: زر الوثائق الرسمية لمواضيع أعمق مثل المحللات المخصصة وترتيب النتائج.
الخلاصة
أنت الآن تعرف كيفية البحث في المستندات باستخدام GroupDocs.Search للـ Java، من إنشاء الفهرس إلى تمكين البحث غير الدقيق في Java ومعالجة النتائج. نفّذ هذه الخطوات لتقديم تجارب بحث سريعة تتحمل الأخطاء الإملائية في أي تطبيق مبني على Java.
Last Updated: 2026-05-28
Tested With: GroupDocs.Search 23.10 for Java
Author: GroupDocs
String query = "water OR \"Lorem ipsum\"";
SearchResult result = index.search(query, options);
for (int i = 0; i < result.getDocumentCount(); i++) {
FoundDocument document = result.getFoundDocument(i);
System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
System.out.println("\tOccurrences: " + document.getOccurrenceCount());
for (FoundDocumentField field : document.getFoundFields()) {
System.out.println("\t\tField: " + field.getFieldName());
if (field.getTerms() != null) {
for (int k = 0; k < field.getTerms().length; k++) {
System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]);
}
}
}
}