البحث عن نص كامل هو طريقة للبحث في نص / استعلام ضمن مجموعة من المستندات. يعثر هذا النهج بسرعة على جميع مثيلات المصطلح / العبارة ويعمل باستخدام فهارس النص. في هذه المقالة ، سوف نتعلم كيفية البحث برمجيًا في النص الكامل في المستندات باستخدام 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

يحتوي الفهرس على نص ممسوح ضوئيًا لجميع المستندات. لذلك ، عندما تنوي إجراء عملية بحث ، تتم الإشارة إلى الفهرس فقط ، بدلاً من نص المستندات الأصلية. لإتاحة البحث الفوري عبر آلاف المستندات بنفس تنسيقات الملفات أو تنسيقات مختلفة ، تحتاج إلى إنشاء فهرس وإضافة هذه المستندات إليه. عند فهرسة المستندات ، يكون الفهرس جاهزًا للتعامل مع استعلامات البحث.

يُنشئ السطران البسيطان التاليان فهرسًا ويضيفان أيضًا مجلد المستندات إلى الفهرس.

Index index = new Index("indexingFolderPath");
index.add("documentsFolderPath");

بعد فهرسة مستندات متعددة من نفس التنسيقات أو تنسيقات مختلفة مثل (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 تم الحصول عليه باستخدام الكود أعلاه.

قم بتمييز نتائج البحث عن النص الكامل في المحتوى باستخدام Java

احصل على ترخيص API مجاني

يمكنك الحصول على ترخيص مؤقت مجاني من أجل استخدام واجهة برمجة التطبيقات بدون قيود التقييم.

استنتاج

في هذه المقالة ، تعلمنا البحث عن نص داخل مستندات متعددة لمجلد في Java. علاوة على ذلك ، ناقشنا كيفية تمييز نص نتائج البحث برمجيًا بتنسيق HTML لملفات MS Word وملفات TXT وملفات PDF باستخدام GroupDocs.Search for Java.

يمكنك معرفة المزيد حول API باستخدام التوثيق. تتوفر العديد من الأمثلة على موقع GitHub. للاستفسارات ، اتصل بنا عبر المنتدى.

أنظر أيضا