قبل أن ننتقل إلى التفاصيل ، دعنا نلقي نظرة عامة على تقنية البحث عن النص الكامل. يعد البحث عن نص كامل في الأساس طريقة أكثر تقدمًا للبحث في نص / استعلام عبر مجموعة من المستندات. يعثر هذا النهج بسرعة على جميع مثيلات المصطلح ويعمل باستخدام فهارس النص. في هذه المقالة ، سوف نتعلم ، كيفية البحث برمجيًا في النص الكامل في المستندات باستخدام C #.
بعد ذلك ، يمكنك تنفيذ تقنيات بحث متنوعة للبحث عن نص في مستندات معالجة الكلمات وجداول البيانات والعروض التقديمية وملفات HTML والكتب الإلكترونية بتنسيق PDF ورسائل البريد الإلكتروني وأرشيفات ZIP والعديد من الملفات الأخرى.
أحد أمثلة تنفيذ البحث عن نص كامل موجود في معالجات النصوص ومحررات النصوص. يساعدك في العثور على عبارة أو كلمة في أي مكان في المستند.
يتم تناول الموضوعات التالية أدناه:
NET API للبحث عن النص
GroupDocs.Search for .NET عبارة عن واجهة برمجة تطبيقات بحث خلفية تسمح بالبحث عن نص كامل ويمكن دمجها في أي تطبيق .NET بدون أي أداة خارجية أو تبعية برامج. يتيح لك البحث في العديد من تنسيقات المستندات في تطبيقاتك.
يمكنك تنزيل مثبت DLL أو MSI من قسم التنزيلات أو تثبيت API في تطبيق .NET عبر NuGet.
PM> Install-Package GroupDocs.Search
البحث عن نص كامل باستخدام C
هناك خطوتان رئيسيتان لإجراء بحث نص كامل أو تنفيذه.
- الفهرسة
- قم بإجراء البحث
الفهرسة
لإتاحة البحث الفوري عبر آلاف المستندات بنفس تنسيقات الملفات أو تنسيقات مختلفة ، تحتاج إلى إنشاء فهرس وإضافة هذه المستندات إليه.
ما هو الفهرس؟
يحتوي الفهرس على نص ممسوح ضوئيًا لجميع المستندات. لذلك ، عندما تنوي إجراء عملية بحث (البحث في استعلام محدد) ، تتم الإشارة إلى الفهرس فقط ، بدلاً من نص المستندات الأصلية.
إنشاء الفهرس
يمكن إنشاء فهرس في الذاكرة أو على قرص. لا يمكن حفظ الفهرس الذي تم إنشاؤه في الذاكرة بعد الخروج من البرنامج. في المقابل ، قد يتم تحميل فهرس تم إنشاؤه على القرص في المستقبل لمواصلة العمل. يوضح المثال التالي كيفية إنشاء فهرس على قرص.
Index index = new Index("indexPath/FolderName/");
عند فهرسة المستندات ، يكون الفهرس جاهزًا للتعامل مع استعلامات البحث. فيما يلي بعض تقنيات البحث التي يمكن إجراؤها باستخدام GroupDocs.Search for .NET:
- بحث حساس لحالة الأحرف
- البحث عن التعبير العادي
- البحث بالعبارة
- بحث الأوجه
- بحث المرادفات
- بحث البدل
قم بإجراء البحث في C
البدء بحالة الاستخدام. إذا كان لدينا مستندات متعددة (Word و PDF و Excel و HTML) ونريد إجراء استعلام بحث محدد (مصطلح البحث “فيديو”) عليها.
فيما يلي خطوات كيفية إجراء بحث نصي على مستندات متعددة داخل مجلد:
- حدد مجلد المستندات المصدر ومجلد الفهرس.
- تحضير سلسلة الاستعلام.
- قم بإنشاء فهرس باستخدام مجلد الفهرس.
- أضف مجلد المستندات المصدر إلى الفهرس.
- قم بإجراء بحث باستخدام فئة بحث طريقة فهرس.
- اجتياز ونتائج البحث عن خصائص كل مستند.
يقوم الكود المصدري التالي بإجراء بحث نصي باستخدام C # على جميع مستندات المجلد المتوفر.
// نص استعلام البحث في جميع مستندات المجلد المتوفر في C #
string indexFolder = @"indexPath/GroupDocs/index/";
string documentsFolder = @"documentPath/GroupDocs/source/";
string query = "video";
// إنشاء فهرس في المجلد المحدد وإضافة مجلد المستندات إلى الفهرس
Index index = new Index(indexFolder);
index.Add(documentsFolder);
// البحث في الفهرس
SearchResult result = index.Search(query);
Console.WriteLine("Documents found: " + result.DocumentCount);
// اجتياز كل مستند من نتائج البحث
foreach (FoundDocument document in result)
{
Console.WriteLine("Document Path : " + document.DocumentInfo.FilePath);
Console.WriteLine("Occurance : " + document.OccurrenceCount);
}
سنحصل على مسار المستند وعدد مرات ظهور مصطلح البحث في جميع المستندات المتاحة في مجلد المستند. هذه هي لقطة الشاشة التي يجب تصورها.
تسليط الضوء على نتائج البحث عن النص في C
لنجري الآن نفس البحث عن النص ، ولكن هذه المرة سنقوم بتمييز جميع التكرارات التي تطابق الاستعلام.
توضح الخطوات التالية كيفية تمييز نتائج البحث عن النص:
- تحضير سلسلة الاستعلام.
- أنشئ فهرس باستخدام مسار مجلد الفهرس.
- أضف مجلد المستندات المصدر إلى الفهرس.
- ابحث في مجلد المستند باستخدام طريقة بحث.
- أثناء اجتياز نتائج البحث ، قم بإنشاء أداة تمييز.
- استخدم طريقة Highlight لفئة الفهرس لتمييز نتائج البحث.
يولد الكود التالي ناتج HTML مع نتائج البحث المميزة باستخدام C #.
string indexFolder = @"indexPath/GroupDocs/index/";
string documentFolder = @"documentPath/GroupDocs/source/";
string query = "draw";
// أنشئ فهرسًا في المجلد المحدد وأضف مجلد المستندات إلى الفهرس
Index index = new Index(indexFolder);
index.Add(documentFolder);
// ابحث عن كلمة الاستعلام
SearchResult result = index.Search(query);
// قم بتمييز جميع التكرارات في النص
for (int i = 0; i < result.DocumentCount; i++)
{
FoundDocument document = result.GetFoundDocument(i);
string path = indexFolder + "Highlighted-"+ i +".html";
OutputAdapter outputAdapter = new FileOutputAdapter(path);
Highlighter highlighter = new HtmlHighlighter(outputAdapter);
index.Highlight(document, highlighter);
}
كإخراج ، سنحصل على ملفات HTML متعددة. سيعرض كل ملف محتوى مستند مختلف (على سبيل المثال ، excel.xlsx ، source.docx ، target.docx) مع مصطلح / كلمة بحث مميزة. فيما يلي إخراج HTML المميز لملف DOCX.
احصل على ترخيص API مجاني
يمكنك الحصول على ترخيص مؤقت مجاني من أجل استخدام واجهة برمجة التطبيقات بدون قيود التقييم.
استنتاج
في هذه المقالة ، تعلمنا البحث عن نص داخل مستندات متعددة لمجلد باستخدام C #. علاوة على ذلك ، ناقشنا كيفية تمييز نص نتائج البحث برمجيًا بتنسيق HTML.
يمكنك معرفة المزيد حول API باستخدام التوثيق. تتوفر العديد من الأمثلة على GitHub. للاستفسارات ، اتصل بنا عبر المنتدى.