كيفية البحث باستخدام Regex في Java مع GroupDocs.Search
البحث عبر آلاف المستندات النصية يمكن أن يشعر وكأنه البحث عن إبرة في كومة قش. How to regex search في Java يصبح سهلًا عندما تجمع محرك التعبيرات النمطية القوي للغة مع GroupDocs.Search، مكتبة تُنشئ فهرسًا للمطابقة السريعة جدًا للأنماط. خلال الدقائق القليلة التالية ستتعرف على كيفية تثبيت المكتبة، إنشاء فهرس، إضافة ملفات، وتشغيل استعلامات regex بسيطة تعتمد على النص أو كائنات. في النهاية ستكون جاهزًا لدمج بحث نمطي قوي في أي تطبيق Java.
إجابات سريعة
- ما هي المكتبة الأساسية؟ GroupDocs.Search for Java
- كيف أبدأ؟ Add the Maven dependency and instantiate an
Indexobject - هل يمكنني تصفية المحتوى باستخدام regex؟ Yes – use regex queries for content‑filtering scenarios
- هل أحتاج إلى ترخيص؟ A free trial or temporary license is required for production use
- ما نسخة JDK المدعومة؟ Java 8 or higher
ما هو البحث باستخدام Regex؟
يتيح لك البحث باستخدام Regex تحديد الأنماط مثل التواريخ، عناوين البريد الإلكتروني، أو الأحرف المتكررة عبر العديد من الملفات في عملية واحدة. يحول استعلام نص عادي إلى ماسح قوي قائم على القواعد يمكنه استخراج أو حجب المحتوى فورًا.
لماذا نستخدم GroupDocs.Search للبحث باستخدام Regex؟
يقوم GroupDocs.Search بفهرسة المستندات مرة واحدة ثم يعيد استخدام هذا الفهرس لكل استعلام، مما يوفر عمليات بحث أسرع حتى 10× مقارنةً بالمسح الخام للملفات. تدعم المكتبة أكثر من 30 تنسيق ملف (PDF، DOCX، XLSX، PPTX، TXT، HTML، وأكثر) ويمكنها معالجة ملفات متعددة المئات من الصفحات دون تحميل الملف بالكامل في الذاكرة.
المتطلبات المسبقة
- Java Development Kit (JDK) 8 أو أعلى
- Maven لإدارة التبعيات
- إلمام أساسي بتعبيرات Java النمطية
المكتبات والاعتمادات المطلوبة
أضف GroupDocs.Search إلى مشروع Maven الخاص بك:
<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.License وحمّله عند بدء تشغيل التطبيق.
إعداد GroupDocs.Search للـ Java
معلومات التثبيت
- تكامل Maven: Add the repository and dependency shown above to your
pom.xml. - تحميل مباشر: Place the JAR files on your project’s classpath.
- تطبيق الترخيص: Load the license file at application start‑up.
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize the index by specifying a directory.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
System.out.println("Index created successfully at: " + indexFolder);
}
}
المكونات الأساسية
فئة Index هي المكوّن الأساسي الذي يخزن الرموز القابلة للبحث المستخرجة من مستنداتك. تمكّن من البحث السريع عن أي مصطلح أو نمط دون إعادة قراءة الملفات الأصلية.
كيفية إنشاء الفهرس
إنشاء فهرس أمر بسيط: قم بإنشاء كائن من فئة Index مع مسار المجلد حيث سيتم تخزين ملفات الفهرس. يقوم المُنشئ بإنشاء ملفات قاعدة البيانات اللازمة عند الاستخدام الأول ويجهّز المحرك لإضافة والبحث في المستندات. بمجرد إنشائه، أعد استخدام نفس الفهرس لجميع الاستعلامات.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
كيفية إضافة المستندات
لجعل ملف قابلًا للبحث، استدعِ index.add مع كائن Document (أو DocumentInfo) يشير إلى مسار الملف. تقوم المكتبة بتحليل المحتوى، استخراج الرموز، وتخزينها في الفهرس. يمكن تنفيذ هذه العملية لملفات فردية أو دفعات، وتُدمج التحديثات بشكل تدريجي.
index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");
كيفية تنفيذ بحث تعبير نمطي في شكل نصي
RegexQuery يعرّف استعلام بحث يعتمد على التعبير النمطي. حمّل RegexQuery بنمط نص عادي ومرره إلى طريقة search في Index. يقوم المحرك بتقييم النمط مقابل الرموز المفهرسة ويعيد مراجع المستندات المطابقة، مما يجعل عمليات البحث الفردية سريعة وبسيطة.
String query1 = "^((.)\\2{1,})";
كيفية تنفيذ بحث تعبير نمطي في شكل كائن
يمكن أيضًا بناء RegexQuery ككائن وإعادة استخدامه عبر عمليات بحث متعددة. عرّف الاستعلام مرة واحدة، اضبط الخيارات مثل عدم حساسية الحالة أو المطابقة الضبابية، واستدعِ index.search بشكل متكرر. يحسّن هذا النهج الأداء عندما يُطبق النمط نفسه على مجموعات مستندات مختلفة.
SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());
حالات استخدام Regex لتصفية المحتوى
يمكنك استخدام regex لحظر أو وضع علامة على المحتوى الذي يطابق أنماطًا معينة تلقائيًا، مثل:
- اكتشاف الأحرف المتكررة لتصفية البريد المزعج
- العثور على تسلسلات تشبه بطاقات الائتمان لفحص خصوصية البيانات
- استخراج التواريخ أو المعرفات للمعالجة اللاحقة
التطبيقات العملية
- أنظمة إدارة المستندات: Locate contracts, invoices, or policies by pattern (e.g., invoice numbers).
- مراقبة المحتوى: Apply regex rules to moderate user‑generated text in forums or chat apps.
- استخراج البيانات: Pull structured data like order numbers from unstructured PDFs or Word files.
اعتبارات الأداء
- تحديثات الفهرس: Call
index.addwhenever source files change to keep results fresh. - إدارة الذاكرة: For corpora exceeding 1 million documents, enable incremental indexing to keep heap usage under control.
- تصميم Regex: Keep patterns concise; a pattern like
\d{4}-\d{2}-\d{2}runs 3× faster than a wildcard‑heavy expression such as.*.
الخلاصة
أنت الآن تعرف how to regex search في Java باستخدام GroupDocs.Search، من تثبيت المكتبة وإنشاء الفهرس إلى تنفيذ استعلامات تعتمد على النص أو كائنات. تتيح لك هذه التقنيات إضافة بحث سريع ومُدرك للأنماط إلى أي تطبيق Java، سواء كنت تبني بوابة مستندات، أو ماسح امتثال، أو خط أنابيب لاستخراج البيانات.
الأسئلة المتكررة
Q: ما هو الفرق بين استعلامات regex المعتمدة على النص وتلك المعتمدة على الكائن في GroupDocs.Search؟
A: استعلامات النص سريعة ومختصرة، بينما توفر استعلامات الكائن تعريفات قابلة لإعادة الاستخدام وآمنة النوع يمكن تخزينها وإعادة استخدامها عبر عمليات بحث متعددة.
Q: هل يمكن لـ GroupDocs.Search فهرسة المستندات غير النصية مثل PDFs أو ملفات Excel؟
A: نعم، تقوم المكتبة باستخراج النص القابل للبحث من PDFs، DOCX، XLSX، PPTX، وأكثر من 30 تنسيقًا آخر.
Q: كيف أقوم بتحديث فهرس البحث الموجود بعد إضافة ملفات جديدة؟
A: Call index.add with the new or modified documents; the library will merge changes without rebuilding the whole index.
Q: ما هي الأخطاء الشائعة عند استخدام regex مع GroupDocs.Search؟
A: الأنماط الواسعة جدًا (مثل .*) قد تتسبب في تدهور الأداء، والتعبيرات غير الصحيحة قد لا تُعيد أي نتائج. اختبر الأنماط دائمًا على مجموعة عينات أولاً.
Q: أين يمكنني العثور على دروس متقدمة حول GroupDocs.Search؟
A: Visit the توثيق GroupDocs for deep‑dive guides, API references, and sample projects.
آخر تحديث: 2026-07-31
تم الاختبار باستخدام: GroupDocs.Search 25.4
المؤلف: GroupDocs
SearchQuery query2 = SearchQuery.createRegexQuery("^(.)\\1{1,}");
SearchResult result2 = index.search(query2);
system.out.println("Occurrences found using object form: " + result2.getDocumentCount());