البحث عن نص كامل هو طريقة للبحث في نص / استعلام ضمن مجموعة من المستندات. يعثر هذا النهج بسرعة على جميع مثيلات المصطلح / العبارة ويعمل باستخدام فهارس النص. في هذه المقالة ، سوف نتعلم كيفية البحث برمجيًا في النص الكامل في المستندات باستخدام Java.
بعد ذلك ، يمكنك تنفيذ العديد من تقنيات البحث وبناء حل البحث الخاص بك لمستندات معالجة الكلمات وجداول البيانات والعروض التقديمية وملفات HTML وملفات PDF والكتب الإلكترونية ورسائل البريد الإلكتروني وأرشيفات ZIP والعديد من [تنسيقات المستندات] الأخرى 1.
يتم تناول الموضوعات التالية أدناه:
Java API للبحث عن نص كامل
يوفر GroupDocs.Search واجهة برمجة تطبيقات Java للبحث في النص الكامل والتي يمكن دمجها في أي تطبيق بدون أي أداة خارجية أو تبعية للبرامج. يتيح لك البحث في قائمة كبيرة من تنسيقات المستندات. فيما يلي بعض تقنيات البحث التي يمكن إجراؤها باستخدام واجهة برمجة التطبيقات:
- بحث حساس لحالة الأحرف
- البحث عن التعبير العادي
- بحث الأوجه
- بحث غامض
- بحث Homophone
- بحث المرادفات
تنزيل أو تكوين
يمكنك تنزيل ملف JAR من قسم التنزيلات ، أو الحصول على أحدث تكوينات المستودعات والتبعية لملف pom.xml لتطبيقات Java المستندة إلى المخضرم.
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>21.3</version>
</dependency>
البحث عن نص كامل باستخدام Java
هناك خطوتان لإجراء البحث داخل الملفات المخزنة في مجلد.
- الفهرسة
- قم بإجراء البحث
فهرس الملفات باستخدام Java
يحتوي الفهرس على نص ممسوح ضوئيًا لجميع المستندات. لذلك ، عندما تنوي إجراء عملية بحث ، تتم الإشارة إلى الفهرس فقط ، بدلاً من نص المستندات الأصلية. لإتاحة البحث الفوري عبر آلاف المستندات بنفس تنسيقات الملفات أو تنسيقات مختلفة ، تحتاج إلى إنشاء فهرس وإضافة هذه المستندات إليه. عند فهرسة المستندات ، يكون الفهرس جاهزًا للتعامل مع استعلامات البحث.
يُنشئ السطران البسيطان التاليان فهرسًا ويضيفان أيضًا مجلد المستندات إلى الفهرس.
Index index = new Index("indexingFolderPath");
index.add("documentsFolderPath");
قم بإجراء البحث في Java
بعد فهرسة مستندات متعددة من نفس التنسيقات أو تنسيقات مختلفة مثل (Word و PDF و Excel و HTML) ، يمكننا المضي قدمًا لمعالجة استعلام بحث معين (مصطلح البحث “Draw”) فوقها. فيما يلي خطوات كيفية إجراء بحث نصي على مستندات متعددة داخل مجلد باستخدام Java:
- حدد المجلد المصدر للوثائق ومجلد الفهرس.
- قم بإنشاء فهرس باستخدام مجلد الفهرس.
- أضف المجلد المصدر إلى الفهرس.
- تحضير سلسلة الاستعلام.
- قم بإجراء بحث باستخدام طريقة بحث لفئة الفهرس.
- اجتياز كل نتيجة بحث لخصائص كل مستند.
يقوم الكود المصدري التالي بإجراء بحث نصي في Java على جميع مستندات المجلد المتوفر.
// ابحث عن نص محدد في مستندات PDF و Word و Excel و HTML متعددة في مجلد باستخدام Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath");
// البحث في الفهرس عن نص محدد
SearchResult result = index.search("Draw");
for (int i = 0; i < result.getDocumentCount(); i++) {
FoundDocument document = result.getFoundDocument(i);
System.out.println("Document Path: " + document.getDocumentInfo().getFilePath());
System.out.println("Occurrence : " + document.getOccurrenceCount());
}
سنحصل على مسار المستند وعدد مرات ظهور مصطلحات البحث في جميع المستندات مع هذا المجلد المحدد. هنا لقطة للتصور.
تسليط الضوء على نتائج البحث عن النص في Java
دعنا الآن نجري نفس البحث عن النص الكامل ونبرز أيضًا جميع التكرارات التي تطابق استعلامك.
توضح الخطوات التالية كيفية تمييز نتائج البحث عن النص:
- أنشئ فهرس وأضف مجلد المستندات إلى الفهرس.
- تحضير سلسلة الاستعلام.
- ابحث في مجلد المستند باستخدام طريقة بحث.
- أثناء عبور النتائج ، أنشئ قلم التمييز باستخدام HtmlHighlighter.
- استخدم طريقة التحديد لتمييز نتائج البحث.
يولد الكود التالي ناتج HTML مع نتائج بحث مميزة باستخدام Java.
// قم بتمييز نتائج البحث عن النص الكامل لمستندات متعددة في مجلد في Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath"); // Synchronous indexing documents from the specified folder
String query = "draw"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index
for (int i = 0; i < result.getDocumentCount(); i++)
{
FoundDocument document = result.getFoundDocument(i);
String path = "path/Highlighted-"+ i +".html";
OutputAdapter outputAdapter = new FileOutputAdapter(path);
HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the highlighter
index.highlight(document, highlighter); // Generates HTML formatted output document with highlighted search results
}
كإخراج ، سنحصل على ملفات HTML متعددة. سيعرض كل ملف محتوى مستند منفصل (على سبيل المثال ، excel.xlsx ، source.docx ، target.docx) مع مصطلحات / كلمات بحث مميزة. فيما يلي إخراج HTML المميز لملف DOCX وملف TXT وملف PDF تم الحصول عليه باستخدام الكود أعلاه.
احصل على ترخيص API مجاني
يمكنك الحصول على ترخيص مؤقت مجاني من أجل استخدام واجهة برمجة التطبيقات بدون قيود التقييم.
استنتاج
في هذه المقالة ، تعلمنا البحث عن نص داخل مستندات متعددة لمجلد في Java. علاوة على ذلك ، ناقشنا كيفية تمييز نص نتائج البحث برمجيًا بتنسيق HTML لملفات MS Word وملفات TXT وملفات PDF باستخدام GroupDocs.Search for Java.
يمكنك معرفة المزيد حول API باستخدام التوثيق. تتوفر العديد من الأمثلة على موقع GitHub. للاستفسارات ، اتصل بنا عبر المنتدى.