إنشاء فهرس بحث مخصص مع التعرف على الأحرف باستخدام GroupDocs.Search للغة Java
في التطبيقات الحديثة التي تتعامل مع مستندات كثيرة، إنشاء فهرس بحث مخصص يفهم تفاصيل النص الخاص بك—مثل الشرطات، والشرطة السفلية، أو الرموز الخاصة باللغات—يعد أمرًا أساسيًا لاسترجاع سريع ودقيق. يوضح هذا الدليل كيفية تكوين التعرف على الأحرف في GroupDocs.Search للغة Java، مع تغطية كل من الأحرف العادية (حروف، أرقام، شرطة سفلية) والأحرف المدمجة (مثل الشرطات). في النهاية، ستتمكن من تخصيص فهرس يلبي احتياجات سيناريو OCR أو البحث في الصور بدقة.
إجابات سريعة
- ماذا يعني “إنشاء فهرس بحث مخصص”؟ يعني ذلك تكوين الفهرس لمعالجة رموز معينة كحروف أو أحرف مدمجة، بدلاً من تجاهلها.
- ما المكتبة المستخدمة؟ GroupDocs.Search للغة Java (الإصدار 25.4 وقت كتابة هذا الدليل).
- هل أحتاج إلى ترخيص؟ نسخة تجريبية مجانية تكفي للتطوير؛ الترخيص المدفوع مطلوب للإنتاج.
- هل يمكن فهرسة كل من ملفات PDF والصور؟ نعم—يدعم GroupDocs.Search OCR على الصور وملفات PDF عند تكوينه بشكل صحيح.
- هل Maven مطلوب؟ يُنصح باستخدام Maven لإدارة الاعتمادات، لكن يمكنك أيضًا استخدام Gradle أو ملفات JAR يدوية.
ما هو فهرس البحث المخصص؟
يتيح فهرس البحث المخصص لك تحديد كيفية تفسير محرك البحث للأحرف. بشكل افتراضي، يتم تجاهل العديد من الرموز، مما قد يؤدي إلى فقدان مطابقة لأشياء مثل أرقام القضايا (ABC-123) أو مقتطفات الشيفرة (my_variable). تعديل قاموس الأبجدية يمنحك سيطرة كاملة على ما يعامله المحرك كنص قابل للبحث.
لماذا نكوّن الأحرف العادية والمدمجة؟
- الأحرف العادية (حروف، أرقام، شرطة سفلية) تُعامل كرموز مستقلة، مما يحسن عمليات البحث بالتطابق الدقيق.
- الأحرف المدمجة (شرطات، أقسام) تربط الكلمات؛ تكوينها يمنع تقسيم الرموز غير المرغوب فيه، وهو أمر حاسم للمراجع القانونية، رموز المنتجات، أو فهرسة الشيفرة المصدرية.
المتطلبات المسبقة
- JDK 8 أو أحدث مثبت.
- Maven لإدارة الاعتمادات.
- الوصول إلى مكتبة GroupDocs.Search للغة Java (تنزيل عبر Maven أو الموقع الرسمي).
المكتبات والاعتمادات المطلوبة
أضف مستودع الاعتمادات وإدخالات الاعتماد إلى ملف pom.xml (كما هو موضح أدناه). يجب ترك كتلة 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 للغة Java.
الحصول على الترخيص
- تجربة مجانية – مثالية للتجارب الأولية.
- ترخيص مؤقت – مفيد لدورات تطوير أطول.
- ترخيص إنتاج – مطلوب للنشر التجاري.
احصل على ترخيص من البوابة الرسمية: GroupDocs.
التهيئة الأساسية
المقتطف أدناه يوضح الحد الأدنى من الشيفرة اللازمة لإنشاء فهرس فارغ. اتركه كما هو؛ سنبني عليه لاحقًا.
import com.groupdocs.search.*;
public class GroupDocsSearchSetup {
public static void main(String[] args) {
String indexFolder = "YOUR_OUTPUT_DIRECTORY";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
Index index = new Index(indexFolder);
System.out.println("GroupDocs.Search setup completed!");
}
}
إعداد GroupDocs.Search للغة Java
التثبيت عبر Maven
تكوين Maven الموجود في قسم المتطلبات المسبقة هو كل ما تحتاجه. بعد إضافته، نفّذ mvn clean install لجلب الحزم.
متطلبات إعداد البيئة
- تأكد من وجود مجلد الفهرس ومجلد المستندات على القرص.
- استخدم مسارات مطلقة أو قم بتكوين بيئة التطوير المتكاملة (IDE) لتفسير المسارات النسبية بشكل صحيح.
دليل التنفيذ
فيما يلي نستعرض ميزتين مميزتين: الأحرف العادية والأحرف المدمجة. كل ميزة تتبع نفس النمط—تحديد المسارات، إنشاء الفهرس، ضبط قاموس الأحرف، وأخيرًا فهرسة المستندات.
الميزة 1 – الأحرف العادية
نظرة عامة
تُعامل الأحرف العادية كرموز مستقلة. هذا مثالي عندما تريد أن تكون الأرقام، الحروف، والشرطة السفلية قابلة للبحث كما هي تمامًا.
تنفيذ خطوة بخطوة
1️⃣ إعداد المسارات
حدد أين سيُخزن الفهرس وأين توجد المستندات المصدرية.
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterTypes/RegularCharacters";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
2️⃣ إنشاء الفهرس وتكوينه
أنشئ الفهرس وامسح أي تكوين أبجدي مسبق.
Index index = new Index(indexFolder);
index.getDictionaries().getAlphabet().clear();
3️⃣ تعريف الأحرف العادية
أنشئ مصفوفة أحرف تشمل الأرقام، الحروف اللاتينية، والشرطة السفلية.
StringBuilder sb = new StringBuilder();
for (char i = 0x0030; i <= 0x0039; i++) { // Digits
sb.append(i);
}
for (char i = 0x0041; i <= 0x005A; i++) { // Latin capital letters
sb.append(i);
}
sb.append(0x005F); // Underscore
for (char i = 0x0061; i <= 0x007A; i++) { // Latin small letters
sb.append(i);
}
// Convert to character array and set as alphabet range
char[] characters = new char[sb.length()];
sb.getChars(0, sb.length(), characters, 0);
index.getDictionaries().getAlphabet().setRange(characters, CharacterType.Letter);
4️⃣ فهرسة المستندات
أضف جميع الملفات من مجلد المصدر إلى الفهرس المُكوَّن حديثًا.
index.add(documentFolder);
الميزة 2 – الأحرف المدمجة
نظرة عامة
الأحرف المدمجة (مثل الشرطات) غالبًا ما تربط كلمتين. وضعها كـ مدمجة يخبر المحرك بالحفاظ على الرموز المجاورة معًا أثناء الفهرسة.
تنفيذ خطوة بخطوة
1️⃣ إعداد المسارات
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterTypes/BlendedCharacters";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
2️⃣ إنشاء الفهرس وتكوينه
Index index = new Index(indexFolder);
3️⃣ تعريف الأحرف المدمجة
هنا نخبر القاموس أن الشرطة يجب أن تُعامل كحرف مدمج.
index.getDictionaries().getAlphabet().setRange(new char[] { '-' }, CharacterType.Blended);
4️⃣ فهرسة المستندات
index.add(documentFolder);
تطبيقات عملية
الحالة 1 – إدارة المستندات القانونية
غالبًا ما تحتوي الملفات القانونية على أرقام قضايا مثل 2023-AB-456. من خلال تكوين الشرطات والشرطة السفلية، تُعيد عمليات البحث النتائج المطابقة تمامًا دون تقسيم المعرف.
الحالة 2 – مستودعات الشيفرة المصدرية
يحتاج المطورون إلى البحث في مقتطفات الشيفرة حيث تكون الشرطة السفلية (my_variable) والشرطات (my-function) ذات معنى. يضمن التعرف المخصص على الأحرف أن يحترم محرك البحث هذه الرموز.
الحالة 3 – مجموعات البيانات متعددة اللغات
عند العمل مع لغات تستخدم أبجديات إضافية، يمكنك توسيع مجموعة الأحرف العادية لتشمل تلك النطاقات Unicode، مما يضمن نتائج بحث دقيقة عبر اللغات.
اعتبارات الأداء
- إدارة الموارد – راقب استهلاك الذاكرة؛ الفهارس الكبيرة تستفيد من الالتزام التدريجي.
- جمع القمامة – حرّر كائنات
Indexعند الانتهاء للسماح لـ JVM باستعادة الذاكرة. - تحسين الفهرس – استدعِ دوريًا
index.optimize()(إن كان متاحًا) لضغط الفهرس وتحسين سرعة الاستعلام.
الخلاصة
أنت الآن تعرف كيف تنشئ فهرس بحث مخصص يميز بين الأحرف العادية والمدمجة باستخدام GroupDocs.Search للغة Java. يمنحك هذا التحكم الدقيق القدرة على بناء حلول بحث عالية الأداء ومتكاملة مع OCR، مخصصة للبيئات القانونية، التطويرية، أو متعددة اللغات.
الخطوات التالية
- جرّب إضافة نطاقات Unicode إضافية لأبجديات غير لاتينية.
- اجمع تكوين الأحرف مع ميزات أخرى في GroupDocs.Search مثل التجذير (stemming) أو المرادفات.
- دمج الفهرس في واجهة برمجة تطبيقات REST لتوفير قدرات البحث لتطبيقات الواجهة الأمامية.
الأسئلة المتكررة
س: ما هو الغرض من CharacterType.Letter؟
ج: يحدد للفهرس أن يعامل الأحرف المقدمة كحروف عادية، بحيث تُجزأ بشكل منفصل أثناء الفهرسة.
س: هل يمكنني خلط الأحرف العادية والمدمجة في نفس الفهرس؟
ج: نعم—ما عليك سوى استدعاء setRange لكل نوع؛ سيتعامل القاموس مع كلا التكوينين في آنٍ واحد.
س: هل يجب إعادة بناء الفهرس بعد تغيير الأبجدية؟
ج: بالتأكيد. تؤثر تغييرات قاموس الأحرف على عملية التجزئة، لذا يجب إعادة فهرسة المستندات لتطبيق القواعد الجديدة.
س: هل هناك حد لعدد الأحرف المخصصة التي يمكن تعريفها؟
ج: تدعم المكتبة النطاق الكامل لـ Unicode؛ قد يتدهور الأداء إذا أضفت مجموعة ضخمة جدًا، لذا يُنصح بتحديد الأحرف التي تحتاجها فعليًا.
س: كيف يؤثر ذلك على دقة OCR؟
ج: من خلال مواءمة مجموعة أحرف الفهرس مع مخرجات محرك OCR، تقل الأخطاء السلبية وتتحسن صلة النتائج العامة.
آخر تحديث: 2026-01-11
تم الاختبار مع: GroupDocs.Search 25.4 للغة Java
المؤلف: GroupDocs