بحث غامض باستخدام جافا

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

فيما يلي بعض الأمثلة لتوضيح محتوى نموذج البحث الغامض:

  • قد لا تكون متأكدًا مما إذا كان المستند يستخدم التهجئة “color” أو “color”.
  • عند البحث عن “جون”، يمكن في الواقع تهجئته كـ “جون” أو ربما “جون”.
  • محاولة العثور على “USA” حتى إذا كتب شخص ما “USA”
  • إذا ارتكبت “خطأً”، فانتظر، فهو في الواقع “خطأ”.

الحل للعثور على مثل هذا المحتوى هو البحث الغامض.

مكتبة بحث Java غامض

لإجراء عمليات بحث غامضة في Java، سنستخدم واجهة برمجة التطبيقات GroupDocs.Search for Java. واجهة برمجة التطبيقات (API) قادرة بشكل كبير على إظهار المرونة وتوفر درجة قابلة للتخصيص من التسامح مع الأخطاء. تعتبر هذه الميزة مناسبة عند التعامل مع الاختلافات اللغوية مثل الإنجليزية البريطانية والأمريكية والأخطاء المطبعية.

باستخدام هذه المكتبة، يمكن إجراء بحث غامض ضمن مجموعة كبيرة من تنسيقات الملفات. لا يقتصر الدعم فقط على مستندات Word (DOC، DOCX)، وجداول البيانات (XLS، XLSX)، والعروض التقديمية (PPT، PPTX)، وملفات PDF، ولغات الترميز (HTML، XML)، وMarkdown (MD)، والكتب الإلكترونية (EPUB، CHM، FB2)، ورسائل البريد الإلكتروني (MSG، EML)، وملاحظات OneNote، وحتى أرشيفات ZIP.

إذا كنت تريد معرفة جميع أنواع الملفات التي يمكن لهذا السحر التعامل معها، فما عليك سوى إلقاء نظرة خاطفة على الوثائق.

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

دعونا نقوم بالبحث الغامض في الملفات باستخدام Java

اتبع هذه الخطوات لإجراء بحث غامض في ملفات متعددة بتنسيقات ملفات مختلفة داخل المجلدات باستخدام Java:

  1. ابدأ بإنشاء فهرس باستخدام المجلد الذي توجد به ملفاتك.
  2. أضف مسار المجلد الرئيسي إلى ملف Index.
  3. قم بتوفير استعلام البحث الذي تريد البحث فيه.
  4. قم بتشغيل سحر البحث الغامض حتى يتعرف على الأخطاء الصغيرة.
  5. ضبط مستوى التشابه في الخوارزمية الغامضة.
  6. قم بتنفيذ البحث باستخدام طريقة البحث للحصول على نتائج البحث.
  7. الآن، يمكنك اجتياز SearchResults لإنشاء المخرجات أو طباعتها كما تريد.

في كود Java أدناه، يبحث البرنامج عن محتوى مماثل يشبه ما طلبته في جميع الملفات والمجلدات الفرعية. إنه متسامح مع الأخطاء الإملائية، وتصل نسبة الخطأ فيها إلى 25%. إذا ألقيت نظرة خاطفة على الكود، فسترى أنه تم تعيين مستوى التشابه على 0.75، وهو ما يعادل المطابقة بنسبة 75%. إذا كنت تريد تحسين البحث، فما عليك سوى تغيير مستوى التشابه في الكود.

// غامض ابحث عن ملفات متعددة عبر مجلدات متعددة باستخدام Java

// إنشاء مجلد فهرس وإضافة مجلد المستندات إليه
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");

SearchOptions options = new SearchOptions();
options.getFuzzySearch().setEnabled(true); // Enabling the fuzzy search
options.getFuzzySearch().setFuzzyAlgorithm(new SimilarityLevel(0.75));

String query = "nulla"; // search approximate matches of the provided query  
SearchResult result = index.search(query, options);

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

Query: nulla
 Documents: 2
 Occurrences: 135

     Document: Lorem ipsum.docx
     Occurrences: 132
         Field: content
         Occurrences: 132
             nulla               98
             nullam              34

     Document: EnglishText.txt
     Occurrences: 3
         Field: content
         Occurrences: 3
             dull                1
             full                1
             fully               1

طباعة نتائج البحث

يوفر كود Java التالي طريقتين لعرض نتائج البحث الخاصة بك.

  • قم بتمييز جميع التطابقات التقريبية.
  • طباعة النتائج بتنسيق قابل للقراءة والتحليل
// قم بتمييز وطباعة نتائج البحث لجميع المستندات باستخدام Java
for (int i = 0 ; i < result.getDocumentCount(); i++)
{
    FoundDocument document = result.getFoundDocument(i);
  
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "path/Highlight" + i + ".html");
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    index.highlight(document, highlighter);
 
    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());
        System.out.println("\t\tOccurrences: " + field.getOccurrenceCount());

        // الطباعة وجدت الشروط
        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]);
            }
        }
    }
}

الحصول على ترخيص مجاني أو نسخة تجريبية مجانية

رخصة مجانية

احصل على ترخيص مؤقت مجانًا لاستكشاف هذه المكتبة دون قيود.

تجربة مجانية

يمكنك تنزيل النسخة التجريبية المجانية من قسم التنزيلات.

Java API للبحث داخل الملفات والمجلدات

خاتمة

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

لمزيد من المعلومات حول واجهة برمجة التطبيقات (API)، راجع الوثائق.

إذا كانت لديك أسئلة أو تريد مناقشة المزيد، توجه إلى المنتدى.


أنظر أيضا